有没有办法将 iso-8859-1 的 xml 文件转换为 utf-8 ?
最佳答案
最简单的方法是加载它,然后使用可用的 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 。我怀疑在某些极端情况下这可能会导致问题。
关于.net - c# 中的 iso-8859-1 到 utf-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3691713/