Подтвердить что ты не робот

Что такое символ Unicode U + 001A? Aka 0x1A

Символ U + 001A часто появляется в сообщениях об ошибках, связанных с кодировкой символов. Что такое символ U + 001A?

4b9b3361

Ответ 1

U + 001A определен в стандарте Unicode как управляющий символ с именем SUBSTITUTE и относится к группе, охарактеризованной следующим образом: глава 16 стандарта: "В стандарте Unicode указано 65 кодовых точек для совместимости с C0 и C1 управляющих кодов, определенных в рамках стандарта ISO/IEC 2022 [...]. Стандарт Unicode предусматривает интактный обмен этими кодовыми точками, ни добавление или вычитание из их семантики. Семантика управляющих кодов обычно определяется приложением, с которым они используются. Однако в отсутствие они могут интерпретироваться в соответствии с семантикой функции управления, указанной в ISO/IEC 6429: 1992.

ISO 6429 фактически эквивалентен ECMA 48, в котором этот код также содержит короткое имя SUB и определяет его следующим образом: "SUB используется вместо символа, который был признан недействительным или с ошибкой. SUB предназначен для вводится автоматическими средствами ". Это отражает определение

Поскольку вопрос был помечен как "xml", необходимо отметить, что в XML 1.0 U + 001A запрещен, в разделе . Обратите внимание, что комментарий "любой символ Юникода, исключая суррогатные блоки, FFFE и FFFF" вводит в заблуждение (но комментарии ненормативны); U + 001A является символом Unicode, хотя он не является графическим символом, и его эффект не определен в стандарте Unicode.

Ответ 2

Это управляющий код Ctrl + Z. Это очень удобно в Windows, которая унаследовала его от DOS, которая унаследовала его от CP/M. Его наследие использовалось как маркер конца текста, аналогичный тому, как Ctrl + D используется в Unix.

Увидеть его в сообщении об ошибке или использовать в качестве обратного символа для неудачного преобразования кодировки, однако, довольно необычно. Я бы дважды проверил код и удостоверился, что это не U + 003F или U + FFFD, а более типичные символы резервного копирования. Или просто простая причуда конкретного кода, с которым вы имеете дело.

Ответ 3

Насколько я могу судить, U + 001A является устаревшим символом в Unicode. Его единственная причина существования заключается в том, что она уже определена в ASCII как заменить символ ( "... используется вместо символа, который признан недействительным или с ошибкой или который не может быть представлен на данном устройстве".). Иногда это также использовалось для завершения потока символов (что, вероятно, является общим источником проблем)

В Unicode эта функция перехвачена U + FFFD REPLACEMENT CHARACTER.