Isso é feito em duas etapas:
$ printf "$(printf '\U%08x' 0x13000)\n"
Eu tenho uma lista de pontos de código como 0x13000, 0x1300A. Eu tenho que imprimir os caracteres Unicode correspondentes do bash. Eu já tentei fazer isso com outros comandos que encontrei pesquisando no fórum ( No bash, como posso converter um ponto de código Unicode [0-9A-F] em um caractere imprimível? ) , mas eles não funcionaram.
Eu tentei
echo -ne 'x13000/x130FF/' | iconv -f utf-16be
e, usando perl no terminal
perl -C -e 'print chr 0x130F0'
Com perl
, para gerar o caractere no conjunto de caracteres de localidade:
perl -Mopen=locale -le 'print chr($_) for 0x13000 .. 0x130ff'
Para alguns conjuntos de caracteres (não UTF-8), vi perl
errando. Alternativamente, você poderia fazer:
perl -e 'print pack("L>2", $_, 10) for 0x13000 .. 0x130FF' |
iconv -f UCS-4BE
para fazer com que o sistema iconv
faça a tradução (no caso desses hieróglifos egípcios, eu não espero que muitos conjuntos de caracteres além do UTF-8 possam suportá-los de qualquer maneira). Isso seria equivalente a que zsh
/ bash
para seu $'\UXXXXXXXX'
.
Para gerá-los em UTF-8, independentemente do conjunto de caracteres do código do idioma:
perl -CO -le 'print chr($_) for 0x13000 .. 0x130ff'
Seu
perl -C -le 'print chr 0x130F0'
funcionaria, desde que o conjunto de caracteres do código do idioma seja UTF-8 (verifique a saída de locale charmap
).
Isso produziria o personagem. Agora, você também precisa de uma fonte com o caractere EGYPTIAN HIEROGLYPH E026 e seu emulador de terminal configurado para usar essa fonte se você quer que seja exibido lá.
No Debian e nos derivados, veja o fonts-ancient-scripts
package.