HttpWebResponse导致奇怪的字符

时间:2018-03-27 08:47:50

标签: c#

我正在尝试为电报机器人创建网站解析器。确切的代码是:

var link = "https://www.detmir.ru/";
var request = HttpWebRequest.Create(link);
var resp = (HttpWebResponse)request.GetResponse();
string result;
using (var stream = resp.GetResponseStream())
{
    using (var reader = new StreamReader(stream, Encoding.GetEncoding(resp.CharacterSet)))
    result = reader.ReadToEnd();
}

File.WriteAllText(@"d:\1.txt", result);

结果是一组奇怪的符号:

Strange symbols pics

据我所知 - 编码的主要线索。我尝试使用Encoding.Defult,Encoding.UTF8,结果相同。 但与其他网站一起工作完美。有什么技巧可以解决这个网站的问题吗?

更新

在Google Chrome中,网页的源代码显示正确: Google Chrome webpage source code

1 个答案:

答案 0 :(得分:6)

响应的内容是UTF-8,正如站点报告的那样,但它被压缩以提高吞吐量性能。

启用自动解压缩:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js"></script>
<canvas id="mycanvas" width="100" height="100"></canvas>