【问题标题】:WebClient DownloadString UTF-8 not displaying international charactersWebClient DownloadString UTF-8 不显示国际字符
【发布时间】:2016-09-09 02:06:19
【问题描述】:

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

这是我的代码:

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

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

感谢任何帮助。

【问题讨论】:

    标签: c# html encoding utf-8 webclient


    【解决方案1】:

    我遇到了同样的问题。 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);
    }
    

    【讨论】:

    • 不幸的是,这仍然对我不起作用。似乎即使是一个简单的字符串 specialChar = "ĉ" 也不起作用,所以我怀疑这是字符串的问题?我对编码不太了解,但仍然感谢您的回答--EDIT-- 我认为这是我的打印方法,我会回复您,因为这可能是您给我的正确答案。
    • 是的,这完全有效,谢谢!当它以正确显示的形式出现时,我刚刚离开控制台输出。诡异的。总之,谢谢!
    • 不客气,很高兴我的回答对您有帮助。
    • 你不知道你是如何帮助我的! :-)
    猜你喜欢
    • 2010-10-26
    • 2012-07-24
    • 2012-01-11
    • 2011-06-15
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    相关资源
    最近更新 更多