在XML 1.0中有许多不合法编码的字符,例如U+0007
('bell')和U+001B
('escape').大多数有趣的是非空白的"控制"字符.
从(例如)这个问题和其他问题可以清楚地看出,这是XML规范的问题 - 但是有人可以说明为什么 XML规范禁止这些字符吗?
现在看来似乎可能已要求他们在越狱进行编码,例如,作为
与
分别,但也许有一个实际的原因的字符被禁止,而不是需要进行转义?
Answerers建议避免传输控制字符有一些动机,但Unicode包含许多其他类似控件的字符(考虑U+200C
"零宽度非连接").我认识到这种行为可能没有充分的理由,但我仍然希望更好地理解它.
这特别令人沮丧,因为当这些字符值出现在其他编码数据格式中时,我最终"双重转义"需要对其进行编码的新XML文档.