使用HtmlAgilityPack在HTML中编码

时间:2011-03-18 16:53:33

标签: encoding html-agility-pack

我对中文编码和保存回文件有疑问。我目前正在使用HtmlAgilityPack解析HTML,用它做一些事情并将其保存回文件。我遇到了编码问题,例如中文(GB2312(简体))。当我打开文件时,我读取了编码并使用HtmlAgilityPack

将其保存回来
doc.Save(this._filePath, reader.CurrentEncoding);

但中文字母完全残缺。关于如何保存回同一文件并保持当前编码的任何想法?我也尝试使用HtmlAgilityPack进行编码,如下所示:

FileStream fs = new FileStream(this._filePath, FileMode.Open);

StreamReader reader = new StreamReader(fs);

HtmlDocument doc = new HtmlDocument();
doc.Load(reader);

Encoding enc = doc.DeclaredEncoding

fs.Close();

doc.Save(this._filePath, enc);

但这也不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

因此,经过一些工作,我设法通过阅读Meta标签中的Declared编码来使其工作。我虽然最初形成不好,但实际上它是正确的。 DeclaredEncoding确实从元标记中读取了编码。

当文件保存时,它仍然以ANSI格式保存,我似乎无法改变它。但是,元标记编码确实在浏览器中呈现时确保文件处于检查状态。希望有所帮助。