如何在XML文件中编写ISO代码重音?

时间:2017-10-29 19:23:09

标签: c# xml linq diacritics

我想在带有相应ISO代码的XML文本文件中编写拉丁口音。 例如,é被文件上的é替换。 我的问题是我的第一个&由 Xml.Linq 转义。 结果是&#amp;233;

internal void SaveCurrentFile(XElement root)
{
    var encoding = Encoding.GetEncoding("ISO-8859-1");
    XmlWriterSettings xmlWriterSettings = new XmlWriterSettings
    {
        Indent = true,
        OmitXmlDeclaration = false,
        Encoding = encoding
    };
    using (var writer = XmlWriter.Create(GetFolderPath() + "test.xml", xmlWriterSettings))
    {
        root.Save(writer);
    }
}

我没有在XmlWriterSettings中看到任何帮助我的选项。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

数字字符实体引用是Unicode代码点。例如,
&安培;#x1f6b2; (U + 1F6B2)。 &安培;#233;将是é(U + 00E9)。仅当文档编码不支持特定Unicode代码点时,通常才使用数字字符实体引用。 XML编写器会为您解决此问题。

因此,如果您希望将é作为数字字符实体发出,则只需使用不支持它的文档编码。 ASCII是一个。但是,它可能是十六进制(é)而不是十进制(é)。