.net - c# 中的 iso-8859-1 到 utf-8

标签 .net xml iso-8859-1

有没有办法将 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/

相关文章:

c# - 将类转换为 XML 到字符串

xml - 如何编辑 xsl 文件,以便它根据某些检查加载不同的模板?

python - ISO-8859-1 不适用于 IE

php - 规范化 (webdav) unicode 路径

c# - 是否有理由在括号内返回 null

.net - MDIParent 平铺 child

javascript - 我如何使用 XML 设计样式

mysql - 有关将 MYSQL DB 及其数据从拉丁语转换为 UTF-8 的详细说明。那里有太多差异信息

.net - 如果只有一个 : exists in string,则提取冒号后的内容

c# - 特定于环境的 StructureMap 配置?