코드 포인트로 문자 인쇄

코드 포인트로 문자 인쇄

예를 들어 0x13000, 0x1300A와 같은 코드 포인트 목록이 있습니다. bash에서 해당 유니코드 문자를 인쇄해야 합니다. 포럼에서 검색한 다른 명령을 사용하여 이 작업을 시도했습니다(유니코드 코드 포인트 [0-9A-F]를 bash에서 인쇄 가능한 문자로 변환하는 방법은 무엇입니까?), 그러나 작동하지 않았습니다.

나는 노력했다

echo -ne 'x13000/x130FF/' | iconv -f utf-16be

그리고 터미널에서 Perl을 사용하여

perl -C -e 'print chr 0x130F0' 

답변1

이 작업은 두 단계로 수행됩니다.

$ printf "$(printf '\\U%08x' 0x13000)\n"

답변2

, 를 사용하여 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$'\UXXXXXXXX'

로케일 문자 세트에 관계없이 UTF-8로 출력합니다.

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

당신의

perl -C -le 'print chr 0x130F0'

이는 로케일의 문자 집합이 UTF-8(확인된 출력 locale charmap)인 한 작동합니다.

해당 문자가 출력됩니다. 이제 글꼴도 필요합니다 이집트 상형문자 E026문자가 표시되도록 하려면 해당 글꼴을 사용하도록 터미널 에뮬레이터가 구성되어 있어야 합니다.

Debian 및 그 파생 제품에서 fonts-ancient-scripts패키지를 확인하세요.

관련 정보