有一些关于编码问题的帖子和 HtmlAgilityPack
但是这个问题没有得到解决:
因为我尝试解析的网站包含像 €
或 ä
这样的Unicode符号, ü
我尝试将编码设置为Unicode:
public class WebpageDeserializer
{
public WebpageDeserializer() {}
/*
* Example address: https://www.dslr-forum.de/showthread.php?t=1930368
*/
public static void Deserialize(string address)
{
var web = new HtmlWeb();
web.OverrideEncoding = Encoding.Unicode;
var htmlDoc = web.Load(address);
//further decoding fails because unicode decoded characters are not proper html (looks more like chinese)
}
}
但现在
htmlDoc.DocumentNode.InnerHtml
看起来像这样:
π佄呃偙⁅汭倠䉕䥌⼯㍗⽃堠堠䱍䱍〮〮吠莹莹莹⽬⽬⽬≎≎≎≎≎
如果我尝试使用 UTF-8
或 iso-8859-1
,则 €
符号将转换为 �
(以及 ä
, ö
, ü
) . 我怎样才能解决这个问题?
2 回答
而是
Encoding.Unicode
使用:(使用您的网站和德语变音符号测试)
获取正确的编码检查目标网站的 Headers . 它包含正确的提示:
您的网站配置错误,实际编码为 cp1252 .
下面的代码应该工作: