C#编码:从代码中获取特殊字符

时间:2014-07-16 12:40:11

标签: c# encoding iso-8859-1

我正在使用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示例。我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

考虑{/ 3}}您的HTML输入。