【发布时间】:2018-04-10 18:53:34
【问题描述】:
我想在带有相应 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 中没有看到任何可以帮助我的选项。
感谢您的帮助。
【问题讨论】:
-
你实际上不需要做任何事情。只要正常写字符,并确保使用UTF8。
-
你可以写
Encoding.ASCII。如果这样做,所有非 ASCII Unicode 字符都将被转义,如 Escaping unicode string in XmlElement despite writing XML in UTF-8 所示。 -
我无法使用 UTF8(由于个人限制),但使用 ASCII 编码看起来不错。谢谢!
-
这个限制是怎么产生的? XML 文本是 Unicode 字符,与文档编码无关。
-
XML 文件被游戏使用。我无法控制它如何读取它,并且我已经尝试提供 Utf8 文件但它不起作用。
标签: c# xml linq diacritics