HttpWebRequest错误支持chunked类型的编码

时间:2012-03-01 12:51:49

标签: .net encoding httpwebrequest decode

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

我看着提琴手 - 那里的人物是正确的。

如何通过保持简单的方式获得正确的字符? (无手动解析)

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

提前致谢

以下是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)))

感谢wal !!!

1 个答案:

答案 0 :(得分:2)

该页面的Content-Typewindows-1251,因此您在阅读流中的响应时必须使用该编码。

在代码中更改此行:

using (StreamReader streamReader = new StreamReader(stream))

到此:

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

这将解决您的问题。