2016-09-08 7 views
0

이 텍스트 파일은 \u3010과 같은 16 진수 형식의 유니 코드 문자가 포함 된 내 서버에 저장되어 있습니다.이를 제거하지 않고 사람이 읽을 수 있도록 변환하려고합니다. 등 "축복 메시아 타워"BASH : 유니 코드 16 진수를 문자열로 변환

\u3010Vocaloid 10\u3011Blessed Messiah and the Tower of AI\u3010Originl MV\u3011 
\u3010Otomachi Una\u3011 Hate It! Hate It! Huge Ego! 
\u3010Otomachi Una\u3011Melt \u3010Cover\u3011 
\u3010GUMI\u3011 \u604b\u611b\u30c7\u30b3\u30ec\u30fc\u30c8 \u3010\u30aa\u30ea\u30b8\u30ca\u30ebMV\u3011 

같은 일반 읽을 수있는 텍스트의 나는 이미 어떤 성공을하지 않고, cat FILE | hexdump -v 또는 cat FILE | iconv -f utf16을 실행하려고. 심지어 작동하는 cat FILE | ascii2uni -a U -q을 시도했지만 그래픽 결함이있었습니다 (예 :

【Otomachi Una】Melt over】 

어떻게 이러한 문자를 올바르게 인코딩 할 수 있습니까? 나는 대부분의 유닉스 시스템에 내장 된 명령어를 선호한다.

답변

1

이들은 유니 코드 문자를 나타내는 것으로 echo -e으로 인식되는 동일한 리터럴입니다.

$ echo -e "$(<FILE)" 
【Vocaloid 10】Blessed Messiah and the Tower of AI【Originl MV】 
【Otomachi Una】 Hate It! Hate It! Huge Ego! 
【Otomachi Una】Melt 【Cover】 
【GUMI】 恋愛デコレート 【オリジナルMV】 
+0

당신의 유니 코드 문자가 포함 된 파일의 이름이고, 그것을 작동하는 것 같다

하지만 일부 이유는 일부 문자 집합이 제대로 표시되지 않습니다. "C"가 올바르게 인코딩되지 않았다는 것을 알 수있는 질문을 업데이트했습니다. 왜 이런 일이 일어나는지 궁금합니다. –

+0

이것은 터미널에 문자를 표시하는 데 문제가있을 수 있습니다. 출력을 새로운 파일로 파이프 한 다음'hexdump '를 통해 * 내용을 표시하면 모든 문자가 있음을 알 수 있습니다. – chepner

+0

내 파일은 UTF-8 형식이므로 제대로 작동하려면 ASCII 형식이어야합니다. 감사! –

1

하나의 솔루션 :

printf '%s' "$(<file)" 

enter image description here

파일 내가이 시도
+1

입력 자체에 백분율 기호가있는 경우'printf '% s' "$ ( chepner

관련 문제