我对中文编码和保存回文件有疑问。我目前正在使用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);
但这也不起作用。有什么想法吗?
答案 0 :(得分:1)
因此,经过一些工作,我设法通过阅读Meta标签中的Declared编码来使其工作。我虽然最初形成不好,但实际上它是正确的。 DeclaredEncoding确实从元标记中读取了编码。
当文件保存时,它仍然以ANSI格式保存,我似乎无法改变它。但是,元标记编码确实在浏览器中呈现时确保文件处于检查状态。希望有所帮助。