如何在XML中使用ASCII 26?
当我使用
时,得到的字符引用
是无效的XML字符。
答案 0 :(得分:2)
您不知道。
十进制26
(0x1A
又名^Z
又名SUB
又名替代)是 不是{{3} } :
[2] Char ::= #x9|#xA|#xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
因此,您的数据不是XML,任何兼容的XML处理器都必须报告错误,例如您收到的错误。
在与任何XML库一起使用之前,必须通过手动或自动将数据视为 文本而非XML 来删除任何非法字符来修复数据。
答案 1 :(得分:0)
ASCII 26是所谓的substitute character。在Unicode中,它是represented as U+001a
尝试:
<?xml version=\"1.0\" encoding=\"UTF-8\"?><Test></Test>
您可以使用以下C#进行验证
var xmlDocument = new XmlDocument();
xmlDocument.LoadXml("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Test></Test>");
var substituteCharacter = xmlDocument.SelectSingleNode("//Test").InnerText;
// substituteCharacter is "\u001a"
或
xmlDocument.LoadXml("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Test></Test>");