我想在带有相应ISO代码的XML文本文件中编写拉丁文重音符号。例如,文件中的é
替换为é
。我的问题是我的第一个&由Xml转义。Linq。结果是CCD_ 3。
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中没有看到任何可以帮助我的选项。
谢谢你的帮助。
数字字符实体引用是Unicode代码点。例如,
&x1f6b2;对于🚲(U+1F6B2)&233;将是é(U+00E9)。数字字符实体引用通常仅在文档编码不支持特定Unicode代码点时使用。XML编写器会为您处理这些问题。
因此,如果你想将é作为数字字符实体发出,你只需要使用不支持它的文档编码。ASCII就是其中之一。但是,它可能是十六进制(é;)而不是十进制(é;)。