Существует множество символов, которые не кодируются на языке XML 1.0, например. U+0007
('bell') и U+001B
('escape'). Большинство из них - это символы без символов пробела.
Из (eg) > этого вопроса ясно видно, что он спецификация XML, что вопрос - но кто-нибудь может рассказать мне, почему спецификация XML запрещает эти символы?
Похоже, что потребовалось, чтобы они были закодированы в экранах, например. как 
и 
соответственно, но, возможно, существует практическая причина, по которой символы были запрещены, а не требовались для того, чтобы сбежать?
Ответчики предположили, что есть некоторая мотивация для избежания символов управления передачей, но Unicode включает в себя многие другие управляющие символы (рассмотрите U+200C
"zero join non joiner" ). Я признаю, что для такого поведения не может быть веской причины, но я все равно хотел бы его лучше понять.
Это особенно неприятно, потому что, когда эти значения символов появляются в других форматах данных encodings, я заканчиваю "двойным экранированием" новых XML-документов, которые должны кодировать это.