텍스트 파일의 \UXXXXXXXXXX 유니코드 코드 해석

텍스트 파일의 \UXXXXXXXXXX 유니코드 코드 해석

다음 파일이 있습니다.

$ cat test
Villes visit\U000000e9es

이 코드를 어떻게 해석합니까 \UXXXXXXXX? 예를 들어 다음을 얻는 방법은 무엇입니까?

$ cat test | pipe into something
Villes visitées

답변1

그리고 perl:

$ perl -C -pe 's/\\U([[:xdigit:]]{8})/chr hex$1/ge' <yourfile
Villes visitées

로케일이 문자 맵으로 UTF-8을 사용한다고 가정하면 \UXXXXXXXXU+XXXXXXXX 문자의 UTF-8 인코딩으로 변환됩니다. O사용자의 로케일에 관계없이 UTF-8 출력을 얻으려면 -C로 변경하십시오 -CO.

é사용자 로캘에 대한 올바른 인코딩의 문자 로 변환하려면 (사용자 로캘 문자 집합에 해당 문자가 있다고 가정):

perl -Mopen=locale -pe 's/\\U([[:xdigit:]]{8})/chr hex$1/ge' <yourfile

예를 들어 로케일에서는 0xe9 바이트( fr_CH.iso88591ISO8859-1의 인코딩)로 변환되고, 로케일에서는 0x88 0x6d(BIG5-HKSCS의 인코딩)로 변환됩니다. 로캘의 0xc3 0xa9(UTF-8 인코딩)입니다. 로케일에서는 ISO8859-6에 문자가 없으므로 .ézh_HK.big5hkscsfr_FR.UTF-8ar_AE.iso88596éVilles visit\x{00e9}es

또는 ICU uconv( icu-devtoolsDebian 기반 시스템의 패키지에 있음)를 사용하여 신청할 수 있습니다.Hex/C-Any 전환하다:

uconv -x hex/c-any <your-file

이해 \uXXXX하고 \UXXXXXXXX정렬합니다(더 많이 사용하는 경우hex-any) UTF-8로 출력됩니다. iconv -f utf-8사용자의 로케일로 출력을 파이프합니다 ( 인코딩할 수 없는 문자를 건너뛰는 옵션도 참조) iconv.-c

$ printf '%s\n' '&#233; &#xe9; \x{e9} U+00E9 \u00e9 \U000000e9 \U0001F427 \ud83d\udc27' | uconv -x hex/c-any
&#233; &#xe9; \x{e9} U+00E9 é é 

관련 정보