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

我现在没有时间测试,但是您是否尝试过使用HttpContent.ReadAsByteArrayAsync方法(而不是 ReadAsStringAsync)并将生成的 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 回答