在XML 1.0中有许多不能合法编码的字符,例如U+0007('bell')和U+001B('escape')。大多数有趣的字符是非空白“控制”字符。
从(例如)这个问题和其他问题中可以很明显地看出问题是XML规范 -但是有人可以向我说明为什么 XML规范禁止使用这些字符吗?
似乎可能需要对它们进行转义编码,例如分别作为和,但是也许有实际的原因,禁止而不是要求字符被转义?
回答者建议,有某种动机来避免传输控制字符,但是Unicode包括许多其他类似控制的字符(考虑U+200C“零宽度非连接符”)。我知道这种行为可能没有充分的理由,但我仍然想更好地理解它。
这特别令人沮丧,因为当这些字符值以其他编码数据格式出现时,我最终“双转义”了需要对其进行编码的新XML文档。
哆啦的时光机