在读取HTTP响应的内容时,无法找到正确的编码

时间:2016-08-29 12:41:21

标签: .net unicode encoding utf-8 webclient

我有这段代码从网址读取gzipped响应:

using (var webClient = new WebClient() { Encoding = Encoding.UTF8, Proxy = new WebProxy() }) 
{
    webClient.Headers.Add("Accept: application/json, text/javascript, */*; q=0.01");
    webClient.Headers.Add("Accept-Encoding: gzip, deflate, sdch");
    webClient.Headers.Add("Accept-Language: en-US,en;q=0.8,ru;q=0.6");

    webClient.Headers.Add("Cookie: ...");

    using (var responseStream = new GZipStream(webClient.OpenRead(url), CompressionMode.Decompress))
    {
        using (var reader = new StreamReader(responseStream, Encoding.UTF8))
        {
            var textResponse = reader.ReadToEnd();
        }
    }
}

但是当我查看textResponse变量时,它有像\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u0441\u043a\u0430\u044f这样的字符。
我在这做错了什么?在没有编码参数的情况下构建StreamReader也没有帮助。 问题是 - 服务器发送回Content-Type响应标头,因此我无法确定响应的编码方式。
附: HttpWebRequest有同样的问题

0 个答案:

没有答案