阅读网站编码问题,三种不同的编码

时间:2011-02-01 11:38:32

标签: c# encoding utf-8 httpwebrequest latin1

我在C#中遇到WebRequest的问题。这是一个谷歌页面。

标题陈述

text/html; charset=ISO-8859-1

该网站声明

<meta http-equiv=content-type content="text/html; charset=utf-8">

最后,当我使用默认为Encoding.Default的{​​{1}}

时,我只在调试器和正则表达式中获得预期的结果

现在该怎么办?你有任何提示,如何发生这种情况或我如何解决这个问题?

页面的实际编码似乎是UTF-8。至少FF在UTF-8中正确显示,在Windows-Whatever中,而不是在Latin1中。

网址为this

问题是欧元符号以及所有德国元音。

提前感谢您对这个让我严重疯狂的问题的帮助!

更新:当我通过

输出字符串时
System.Text.SBCSCodePageEncoding

一切正常。

所以看起来问题是,调试器没有显示正确的编码,还有正则表达式。

如何告诉C#将RegEx作为UTF-8处理?

2 个答案:

答案 0 :(得分:2)

为什么不使用Google Query API

,而不是解析HTML

BTW,在使用正则表达式解析HTML之前,read this; - )

编辑:回答你的评论:

  1. 该API适用于Google桌面 同样。
  2. 此编码问题是否特定于Google页面?
  3. 除了您现在遇到的问题之外,谁知道您将在以后遇到什么问题,在生产中,由于这些页面的HTML的细微更改,或者在Web服务器发回的标题中。 网页应该是人眼友好的,而不是计算机友好的。您唯一可以期待友好的是页面的外观和呈现内容,而不是底层的HTML结构。 与API相反,后者应该是计算机友好的

答案 1 :(得分:1)

刚刚找到解决方案......花了很多时间,但这很有效:

Characters in string changed after downloading HTML from the internet