Есть ли какая-либо кодовая точка Unicode, в которой один из байтов в ее представлении utf-8 является байтом ESC (0x1B), не включая саму кодовую точку 0x1B?
Контекст: байт ESC используется в escape-кодах ANSI (в терминалах), и я хотел бы знать, может ли этот байт появляться как часть последовательности байтов utf-8.
Нет, все байты в многобайтовой последовательности UTF-8 имеют установленный бит 7. Только в однобайтовом диапазоне ASCII 0–127 бит 7 очищен, и он включает байт 0x1B
(чей битовый шаблон равен 00011011
), поэтому никакая другая закодированная кодовая точка не будет содержать байт 0x1B
:
https://en.wikipedia.org/wiki/UTF-8
Примечание: вы используете термин «экранирующий код ANSI», который на самом деле является кодом CSI (то есть 0x9B или в UTF-8: 0xC2 0x9B). Преобразование старого 8-битного в 7-битное выполняется с помощью последовательностей ESC, поэтому
ESC [
— это способ отправки 0x9B с 7-битными терминалами). Примечание: большинство терминалов не будут интерпретировать \u009B какESC [
и, следовательно, как команду терминала, но будут исключения.