Инструменты для преобразования 8-битных управляющих символов C1 в последовательности ESC?
Стандарт ECMA-48 («escape-последовательности ANSI») описывает два способа кодирования набора управляющих кодов C1: использование двухсимвольных последовательностей ESC или, альтернативно, использование 8-разрядных управляющих символов.
В статьях Википедии объясняется, что двухсимвольные последовательности ESC больше подходят для использования с UTF-8.
Цитирование из escape-кода ANSI :
Стандарт гласит, что в 8-битных средах эти двухбайтовые последовательности могут быть объединены в один управляющий код C1 в диапазоне 0x80–0x9F. Однако на современных устройствах эти коды часто используются для других целей, таких как части UTF-8 или для символов CP-1252, поэтому используется только 2-байтовая последовательность.
и из контрольных кодов C0 и C1 :
Символам C1 в Unicode требуется 2 байта для кодирования в UTF-8 (например, CSI в U + 009B кодируется как байты 0xC2, 0x9B в UTF-8). Таким образом, соответствующие функции управления чаще доступны с использованием эквивалентной двухбайтовой escape-последовательности, предназначенной для использования с системами, которые имеют только 7-битные байты.
Есть ли какие-либо инструменты командной строки, которые можно использовать для прямого преобразования 8-битных управляющих символов C1 (как указано в ECMA-48) в двухсимвольные последовательности ESC?
Моя лучшая попытка на данный момент - попытаться использовать iconv
:
$ printf $(echo -en "\x9b") | iconv --from-code=ANSI_X3.4 --to-code=UTF-8 | od -t x1 iconv: illegal input sequence at position 0
В целях отладки я использую od -t x1
для перевода результата обратно в шестнадцатеричное. Результат, который я надеюсь получить, будет таким же, как результат выполнения:
$ printf $(echo -en "\x27[") | od -t x1 0000000 27 5b 0000002
Другими словами, существует ли инструмент командной строки, в котором вы можете передать в виде управляющего символа C1 \x9b
и получить обратную escape-последовательность, как \x27[
?
РЕДАКТИРОВАТЬ: Или, как справедливо предлагает egmont, более уместно, интерактивный инструмент, а не то, что вы трубите в.
0 ответов на вопрос
Похожие вопросы
-
2
Как отправить escape-символ на OS X терминал?
-
1
Как разблокировать заблокированный файл псевдонимов в OS X?
-
4
Использование публичных терминалов для входа в ваши личные учетные данные
-
-
2
Как я могу получить OSX Terminal.app для открытия полноэкранного режима, а не каскадного?
-
3
Mac OS X: обычные места, где должны жить бинарные файлы
-
2
Mac OS X: нужен простой скрипт
-
4
Прозрачный терминал Unicode X не привязан к среде рабочего стола?
-
6
Unicode, Unicode Big Endian или UTF-8? В чем разница? Какой формат лучше?
-
3
Vim: Как обрабатывать файлы Unicode с текстом на нескольких (более двух) языках?
-
3
Группы окон OSX