我制作了一个代码,所以下载一个页面,所以使用分块编码,但结果不好 - 一个 字符。
我看着提琴手 - 那里的人物是正确的。
如何通过保持简单的方式获得正确的字符? (无手动解析)
或者 - 我如何告诉服务器,以便我们不支持这种编码?
提前致谢
以下是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 !!!
答案 0 :(得分:2)
该页面的Content-Type
为windows-1251,因此您在阅读流中的响应时必须使用该编码。
在代码中更改此行:
using (StreamReader streamReader = new StreamReader(stream))
到此:
using (StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding(1251)))
这将解决您的问题。