【问题标题】:HttpWebRequest error supporting encoding of type chunked支持分块类型编码的 HttpWebRequest 错误
【发布时间】:2012-03-01 12:51:49
【问题描述】:

我做了一个代码所以下载一个页面所以使用分块编码,但结果不好 - 一个����个字符。

我查看了 fiddler - 那里的字符是正确的。

如何在保持简单的情况下获得正确的字符? (无需手动解析)

或者 - 我如何告诉服务器我们不支持这种编码?

提前致谢

这是C#中的代码

HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create("http://www.grad-nk.ru/arti/531.php");

var webResponse = (HttpWebResponse)webRequest.GetResponse();

using (Stream stream = webResponse.GetResponseStream())
{
   using (StreamReader streamReader = new StreamReader(stream))
   {
      var content = streamReader.ReadToEnd();
   }
}

编辑:

这是行,所以让它工作

using (StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding(webResponse.CharacterSet)))

感谢沃尔!!!

【问题讨论】:

  • 响应的 Content-Type 标头中是否指定了字符集?

标签: .net encoding httpwebrequest decode


【解决方案1】:

该页面的Content-Type 是windows-1251,因此您在从流中读取响应时必须使用该编码。

更改代码中的这一行:

using (StreamReader streamReader = new StreamReader(stream))

到这里:

using (StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding(1251)))

这将解决您的问题。

【讨论】:

    猜你喜欢
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 2014-05-07
    相关资源
    最近更新 更多