質問

REST WebサービスからXMLファイルを読んで、それを解析し、uitableViewに詳細を表示しています。 XMLファイルはISO-8859-1としてエンコードされており、アクセント付き文字が含まれています。 TableViewに文字列を追加するだけで、ジャンクキャラクターが表示されるので、UTF8に変換しようとしましたが、疑問符に変換され、キャラクターが理解されていないことを意味します。

これがコードです:

foreach(XmlNode myNode in myNodeList)
{
    Encoding isoEnc = Encoding.GetEncoding ("iso-8859-1");

    string utfResult = Encoding.UTF8.GetString (isoEnc.GetBytes(myNode.InnerText));

    _myCollection.Add(utfResult);
}

ここで何が起こっているのか、アクセントされたチャーを表示する方法はありますか?

役に立ちましたか?

解決

OK、問題が解決しました。私のエラーは、StreamReaderがデフォルトでISO-8859-1エンコードを扱うと仮定しているようです。 StreamReaderコンストラクターを次のように変更しました。

StreamReader reader = new StreamReader (response.GetResponseStream ());

に:

StreamReader reader = new StreamReader (response.GetResponseStream (), Encoding.GetEncoding("iso-8859-1"));

StreamReaderに正しいエンコーディングを期待するように指示することで、他のすべてが所定の位置に分類されます。

他のヒント

さて、UTF-8への「変換」は非常に疑わしいです。あなたは基本的に、あなたはXMLファイルよりもよく知っていると言っています - それは 請求 ISO-8859-1になるために、あなた 本当 UTF-8でエンコードされたことを知っています。それを信じる理由はありますか?

キャラクターの意図がわかっている場合は、ロギングを追加して、それらの文字のユニコード値(整数として)を示すことをお勧めし、それらを比較してください。 unicode.orgのコードチャート. 。次に、問題があるかどうかがわかります 表示 キャラクター、またはそもそもフィードからそれらを読んでいます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top