我在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();
如何添加编码以支持德语(变音符号)?
答案 0 :(得分:2)
我现在没有时间进行测试,但您是否尝试过使用HttpContent.ReadAsByteArrayAsync方法(而不是ReadAsStringAsync)并将生成的byte []分别编码到ISO-8859-1中?
答案 1 :(得分: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);