Существуют ли кодировки, в которых нет кода Space 0x20?

Есть ли другие кодировки помимо EBCDIC, у которых нет кода 0x20 для пробела? Я видел некоторые программы, в которых пространство жестко закодировано как 32. Должен ли я всегда использовать escape-последовательности для пробелов, или жесткое кодирование допустимо?

1 ответ

Решение

Существуют кодировки, где 0x40–0x5F не обязательно имеют ASCII-совместимые буквы (например, Microsoft cp932), но все они сохраняют значение 0x20. (Даже JIS X 0208, где ничто, начиная с 0x21, не является ASCII-подобным, все равно резервирует 0x20 в качестве пробела.)

Единственным заметным исключением является UTF-16 / UCS-2, который является многобайтовым кодированием с фиксированной шириной, где пробел кодируется как 0x00 20, а одиночный 0x20 может встречаться в любом количестве кодовых точек (например, Ƞ - это U+0220 в Unicode, который кодируется как 0x02 20 в UTF-16).

К счастью, UTF-16 уже является особым случаем из-за 0x00, поэтому его вряд ли можно найти в любом месте, где тоже нужно беспокоиться о 0x20.

Другие вопросы по тегам