WebClient DownloadString UTF-8不显示国际字符

时间:2016-05-13 02:50:35

标签: c# html encoding utf-8 webclient

我尝试将字符串的html保存在字符串中。该网站有国际字符(ę,ś,ć,...),即使我将编码设置为UTF-8(对应于网站字符集),它们也不会保存到字符串中。

这是我的代码:

using (WebClient client = new WebClient())
{
    client.Encoding = Encoding.UTF8;
    string htmlCode = client.DownloadString(http://www.filmweb.pl/Mroczne.Widmo);
}

当我将“htmlCode”打印到控制台时,即使在原始HTML中它们被正确显示,国际字符也无法正确显示。

感谢任何帮助。

1 个答案:

答案 0 :(得分:11)

我遇到了同样的问题。似乎client.DownloadString不使用UTF-8对字符进行编码。使用client.DownloadData并使用Encoding.UTF8.GetString对返回的数据进行编码可以解决问题。

using (WebClient client = new WebClient())
{
     var htmlData = client.DownloadData("http://www.filmweb.pl/Mroczne.Widmo");
     var htmlCode = Encoding.UTF8.GetString(htmlData);
}