Печать символа, имеющего кодовую точку

Со мной произошло то же самое. Основываясь на том, что сказал Томас выше, я смог исправить это, откомментировав en_US.UTF-8 UTF-8 в моем /etc/locale.gen файле (ранее ни одна из строк не была откомментирована), затем запустив locale-gen.

3
13.04.2017, 15:36
1 ответ

С помощью perl вывести символ в кодовой таблице локали:

perl -Mopen=locale -le 'print chr($_) for 0x13000 .. 0x130ff'

Для некоторых кодовых таблиц (не UTF-8) я видел, что perl делает это неправильно. В качестве альтернативы вы можете сделать:

perl -e 'print pack("L>2", $_, 10) for 0x13000 .. 0x130FF' |
  iconv -f UCS-4BE

чтобы системный iconv выполнил перевод (в случае с египетскими иероглифами я не ожидаю, что многие кодовые таблицы помимо UTF-8 будут поддерживать их в любом случае). Это было бы эквивалентно тому, что zsh/bash для своих $'\UXXXXXX'.

Для вывода их в UTF-8 независимо от кодовой таблицы локали:

perl -CO -le 'print chr($_) for 0x13000 .. 0x130ff'

Ваш

perl -C -le 'print chr 0x130F0'

будет работать, пока кодовая таблица локали равна UTF-8 (проверьте вывод locale charmap).

Он выведет символ. Теперь вам также нужен шрифт с этим EGYPTIAN HIEROGLYPH E026 символом, и ваш эмулятор терминала, настроенный на использование этого шрифта, если вы хотите, чтобы он там отображался.

В Debian и производных посмотрите на пакет fonts-ancient-scripts.

2
27.01.2020, 21:12

Теги

Похожие вопросы