1

Windows 8 で HttpClient クラスを使用しています。Windows Phone では、WebClient クラスをエンコーディングと組み合わせて使用​​し、適切なエンコーディングを取得します。

WebClient xml = new WebClient();
xml.Encoding = Encoding.GetEncoding("ISO-8859-1");

Windows 8 では、次のようになります。

HttpClient xml = new HttpClient();
HttpResponseMessage response = await xml.GetAsync(uri);                    
responsetext = await response.Content.ReadAsStringAsync();

ドイツ語 (ウムラウト) をサポートするエンコーディングを追加するにはどうすればよいですか?

4

2 に答える 2

2

今はテストする時間がありませんが、(ReadAsStringAsync ではなく) HttpContent.ReadAsByteArrayAsyncメソッドを使用して、結果の byte[] を ISO-8859-1 に個別にエンコードしてみましたか?

于 2012-06-05T23:13:02.663 に答える
1

ReadAsStringAsync を ReadAsBufferAsync に変更し、必要なエンコーディングで結果を解析します

var buffer = await response.Content.ReadAsBufferAsync();
byte [] rawBytes = new byte[buffer.Length];
using (var reader = DataReader.FromBuffer(buffer))
{
    reader.ReadBytes(rawBytes);
}

var res = Encoding.UTF8.GetString(rawBytes, 0, rawBytes.Length);   
于 2014-12-27T20:57:52.233 に答える