有没有办法将 iso-8859-1 的 xml 文件转换为 utf-8 ?
问问题
1596 次
1 回答
2
最简单的方法是加载它,然后使用可用的 XML API 之一保存它。这样,任何额外的转换(例如 XML 声明)都会得到适当的处理。例如:
using System;
using System.Text;
using System.Xml.Linq;
class Test
{
static void Main(string[] args)
{
XDocument doc = XDocument.Load("test.xml");
XDeclaration declaration = doc.Declaration;
if (declaration != null) {
declaration.Encoding = "utf-8";
}
doc.Save("test-utf8.xml");
}
}
请注意,我认为这最终可能会改变缩进等方面的一些事情,除非您指定一些额外的选项。这对您来说可能是个问题吗?
您可能只是将整个文件加载为文本(使用Encoding.GetEncoding(28591)
),自己修改声明部分,然后自己将其重新保存为 UTF-8。我怀疑可能有一些极端情况会导致问题。
于 2010-09-11T16:20:25.787 回答