C# HttpWebRequest';s的回应不';t显示UTF-8符号

C# HttpWebRequest';s的回应不';t显示UTF-8符号,c#,utf-8,httpwebrequest,utf8-decode,C#,Utf 8,Httpwebrequest,Utf8 Decode,我有一个简单的代码来获取网站的响应,但是有一个小问题。我试图从俄罗斯网站上得到回复,从一个网站上我得到了未知的符号,从另一个网站上我得到了正常的文本。问题出在哪里 答复来源:www.kinopoik.ru ������ � ����... 答复来源:www.yandex.ru Гцццц-Чцццц。1:2 kinopoik.ru编码为WINDOWS-1251(您可以在内容类型标题中看到这一点) 您需要将Encoding.GetEncoding(1251)传递给StreamReader来解码该文

我有一个简单的代码来获取网站的响应,但是有一个小问题。我试图从俄罗斯网站上得到回复,从一个网站上我得到了未知的符号,从另一个网站上我得到了正常的文本。问题出在哪里

答复来源:www.kinopoik.ru

������ � ����...

答复来源:www.yandex.ru

Гцццц-Чцццц。1:2


kinopoik.ru
编码为
WINDOWS-1251
(您可以在
内容类型
标题中看到这一点)


您需要将
Encoding.GetEncoding(1251)
传递给StreamReader来解码该文件。

这是一个字符集问题。如果要获取请求响应的字符集,HttpWebResponse类将为我们提供一个名为CharacterSet的属性。此属性返回字符串类型值

myWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
myWebRequest.Method = "GET";
myWebResponse = (HttpWebResponse)myWebRequest.GetResponse();
string str = myWebResponse.CharacterSet;
如果您想知道使用哪种编码方法对响应进行编码,为此,我们有一个名为ContentEncoding的HttpWebRequest类属性。此属性返回字符串值

myWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
myWebRequest.Method = "GET";
myWebResponse = (HttpWebResponse)myWebRequest.GetResponse();
string str = myWebResponse.ContentEncoding;
myWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
myWebRequest.Method = "GET";
myWebResponse = (HttpWebResponse)myWebRequest.GetResponse();
string str = myWebResponse.ContentEncoding;