我正在使用C#WinForms应用程序从使用charset ISO-8859-1的网页中删除一些数据。它适用于许多特殊字符,但不是全部。
(*下面我使用冒号而不是冒号,这样你就会看到我看到的代码,而不是它的价值)
我查看了页面源代码,我注意到对于那些无法正确显示的代码,实际代码(例如&#363 :)位于页面源代码中,而不是值。例如,在页面来源中我看到Ry&#363:Murakami,但我希望看到RyūMurakami。此外,还有许多其他代码显示为代码,例如&#350:&#333:&#353:&#269:&#259:&#537:等等。
我尝试过使用WebClient.DownloadString和WebClient.DownloadData。
尝试#1代码:
using (WebClient wc = new WebClient())
{
wc.Encoding = Encoding.GetEncoding("ISO-8859-1");
string WebPageText = wc.DownloadString("http://www.[removed].htm");
// Scrape WebPageText here
}
尝试#2代码:
Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
using (WebClient wc = new WebClient())
{
wc.Encoding = iso;
byte[] AllData = wc.DownloadData("http://www.[removed].htm");
byte[] utfBytes = Encoding.Convert(iso, utf8, AllData);
string WebPageText = utf8.GetString(utfBytes);
// Scrape WebPageText here
}
我想保留特殊字符,所以请不要建议任何RemoveDiacritics示例。我错过了什么吗?
答案 0 :(得分:2)
考虑{/ 3}}您的HTML输入。