Windows Phone アプリケーションで WebClient.OpenReadAsync() を使用してダウンロードした xml を読み込もうとしています。問題は、xml に UTF8 エンコーディングが含まれていない場合があり、「ISO-8859-1」などの他のエンコーディングが含まれている可能性があるため、アクセントが台無しになることです。
次のコードを使用して、ISO-8858-1 xml の 1 つを完全に読み込むことができました。
var buff = e.Result.ReadFully(); //Gets byte array from the stream
var resultBuff = Encoding.Convert(Encoding.GetEncoding("ISO-8859-1"), Encoding.UTF8, buff);
var result = Encoding.UTF8.GetString(resultBuff, 0, resultBuff.Length);
それはISO-8859-1で美しく機能し、テキストは完璧になりましたが、UTF8 xmlを台無しにしました。
したがって、ここでの考え方は、これを行う前にバイト配列またはストリームのエンコーディングを検出することです。UTF8 でない場合は、検出されたエンコーディングで上記の方法を使用してデータを変換します。
インターネットでエンコーディングを検出できる方法を探していますが、見つかりません! Windows Phone でこのようなことを行う方法を知っている人はいますか?
ありがとう!