使用以下方法加载页面时是否可以设置自定义编码?
HtmlWeb hwWeb = new HtmlWeb();
HtmlDocument hd = hwWeb.load("myurl");
我想将编码设置为“iso-8859-9”。
我使用C#4.0和WPF。
编辑:The question已在MSDN上得到解答。
答案 0 :(得分:4)
我想您可以尝试覆盖HtmlWeb
对象中的编码。
试试这个:
var web = new HtmlWeb
{
AutoDetectEncoding = false,
OverrideEncoding = myEncoding,
};
var doc = web.Load(myUrl);
注意:OverrideEncoding
属性似乎已添加到修订版76610中的HTML敏捷包中,因此在当前版本v1.4(66017)中不可用。接下来最好的办法是手动阅读页面并覆盖编码。
答案 1 :(得分:3)
var document = new HtmlDocument();
using (var client = new WebClient())
{
using (var stream = client.OpenRead(url))
{
var reader = new StreamReader(stream, Encoding.GetEncoding("iso-8859-9"));
var html = reader.ReadToEnd();
document.LoadHtml(html);
}
}
这是解决方案的简单版本 here (由于某些原因它被删除了)
答案 2 :(得分:0)
这里有一个不错的答案,可以处理自动检测编码以及其他一些漂亮的功能: