我该如何在xml中转义Unicode字符0x1F?

13

我需要在UTF-8文档中写入Unicode字符0x1F(它在XML中不被允许)。有没有一种方法可以转义它,还是必须将其丢弃?

2个回答

9
这将在XML 1.1中完成(但不建议使用):


在XML 1.0中,它完全不被支持。一种解决方法是将包含该字符的文本进行base-64编码。


3
好的,那是同样的事情,但它同样是非法的。例如,xmllint: test.xml:2: parser error : xmlParseCharRef: invalid xmlChar value 31 - Filip
请问您能否解释一下,当解析包含0x1f字符的XML时,我该如何使用? - Mohit Singh

3
使用0x1F XML是非法的(http://www.w3.org/TR/xml11/#charsets)。因此,除了以某种方式自己对其进行编码外,没有其他方法可以解决它。可以使用base-64(如所建议的),或url编码,或任何其他xml不理解的选项。这与在xml中存储二进制数据相同的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接