![코드 포인트로 문자 인쇄](https://linux55.com/image/98293/%EC%BD%94%EB%93%9C%20%ED%8F%AC%EC%9D%B8%ED%8A%B8%EB%A1%9C%20%EB%AC%B8%EC%9E%90%20%EC%9D%B8%EC%87%84.png)
예를 들어 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
패키지를 확인하세요.