HttpWebRequest错误编码判定

本文关键字:编码 错误 HttpWebRequest | 更新日期: 2023-09-27 18:13:16

我正在尝试从站点- http://konungstvo.ru/读取html页面文本,该站点具有utf-8编码。

var request = _requestCreator.Create(uri);
try
{
    using (var response = request.GetResponse())
    {
        if (response.ContentType.Contains("text/html"))
        {
            using (var reader = new System.IO.StreamReader(response.GetResponseStream()))
            {
                string responseText = reader.ReadToEnd();
            }

但是我得到了'u001f�'b'01V'u0002X'u0002��X�n'u001b�,等等,尽管代码与其他网站一起工作。

HttpWebRequest错误编码判定

我认为您需要拉丁/西里尔字母的字符编码,可以通过ISO/IEC 8859-5或例如Windows-1251:

var encoding = Encoding.GetEncoding("iso-8859-5");
using (var reader = new System.IO.StreamReader(response.GetResponseStream(), encoding))

在读取响应流时使用此方法会产生一些西里尔字母内容,不幸的是它也不是正确的输出:https://dotnetfiddle.net/x8jnN8。所以,我很抱歉,但这不是你问题的真正答案:/