Windows 8 使用HttpClient进行编码

Windows 8 使用HttpClient进行编码,windows-8,.net-4.5,Windows 8,.net 4.5,我正在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

我正在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();

如何添加支持德语(umlaute)的编码?

我现在没有时间测试,但您是否尝试过使用该方法(而不是ReadAsTringAsync)并将生成的字节[]分别编码到ISO-8859-1中?

将ReadAsTringAsync更改为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);