Net WebClient 编码不工作
Net WebClient Encoding not working
我正在尝试使用 .NET WebClient 解析 html 文档,但我得到的字符不正确。我已经配置了很多编码,但我找不到为什么我弄错了:
URL 是 http://www.vatican.va/archive/ESL0506/__P2.HTM。
这是我的代码(您可以在 ConsoleApp 中测试它)
static void Main(string[] args)
{
WebClient client = new WebClient();
client.Encoding = Encoding.GetEncoding(28591);
var htmlCode = client.DownloadString("http://www.vatican.va/archive/ESL0506/__P2.HTM");
var splittedHtml = htmlCode.Split('<').ToList();
var htmlVerses = splittedHtml.Where(x => x.StartsWith("p class=MsoNormal align=left")).ToList();
}
然后,在 htmlVerses 中我得到如下字符串:
"p class=MsoNormal align=left style='margin-left:0cm;text-align:left;\ntext-indent:0cm'>3 Entonces Dios dijo: «Que\nexista la luz». Y la luz existió."
检查这部分:3 Entonces Dios dijo: «Que\nexista la luz». Y la luz existió
它没有很好地解析。应该是:3 Entonces Dios dijo: «Que exista la luz». Y la luz existió.
如果我们检查 chrome 源代码,我们会得到:
然后我尝试从 http://www.generateit.net/seo-tools/source-viewer/ 获取源代码,我得到的异常与我的应用程序中的一样。
真的很奇怪,网页使用的编码是charset=iso-8859-1,和我的webclient使用的一样。
如有任何帮助,我们将不胜感激。
我正在尝试使用 .NET WebClient 解析 html 文档,但我得到的字符不正确。我已经配置了很多编码,但我找不到为什么我弄错了:
URL 是 http://www.vatican.va/archive/ESL0506/__P2.HTM。
这是我的代码(您可以在 ConsoleApp 中测试它)
static void Main(string[] args)
{
WebClient client = new WebClient();
client.Encoding = Encoding.GetEncoding(28591);
var htmlCode = client.DownloadString("http://www.vatican.va/archive/ESL0506/__P2.HTM");
var splittedHtml = htmlCode.Split('<').ToList();
var htmlVerses = splittedHtml.Where(x => x.StartsWith("p class=MsoNormal align=left")).ToList();
}
然后,在 htmlVerses 中我得到如下字符串:
"p class=MsoNormal align=left style='margin-left:0cm;text-align:left;\ntext-indent:0cm'>3 Entonces Dios dijo: «Que\nexista la luz». Y la luz existió."
检查这部分:3 Entonces Dios dijo: «Que\nexista la luz». Y la luz existió
它没有很好地解析。应该是:3 Entonces Dios dijo: «Que exista la luz». Y la luz existió.
如果我们检查 chrome 源代码,我们会得到:
然后我尝试从 http://www.generateit.net/seo-tools/source-viewer/ 获取源代码,我得到的异常与我的应用程序中的一样。
真的很奇怪,网页使用的编码是charset=iso-8859-1,和我的webclient使用的一样。
如有任何帮助,我们将不胜感激。