1

有没有办法将 iso-8859-1 的 xml 文件转换为 utf-8 ?

4

1 回答 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 回答