텍스트 파일을 ASCII 파일로 변환하려고 할 때 오류 메시지가 나타납니다 iconv: illegal input sequence at position
.
내가 사용하는 명령은 iconv -f UTF-8 -t ascii//TRANSLIT file
문제가되는 캐릭터는 æ
입니다.
텍스트 파일 자체가 여기에 있습니다 .
왜 잘못된 순서라고 말합니까? 입력 문자는 올바른 UTF-8 문자 (U + 00E6)입니다.
답변
파일은 UTF-8이 아닌 ISO-8859-1로 인코딩됩니다.
$ hd 0606461.txt | grep -B1 '^0002c520'
0002c510 64 75 6d 20 66 65 72 69 65 6e 74 20 72 75 69 6e |dum ferient ruin|
0002c520 e6 0d 0a 2d 2d 48 6f 72 61 63 65 2e 0d 0a 0d 0a |...--Horace.....|
바이트 “e6″만으로는 유효한 UTF-8 시퀀스가 아닙니다.
따라서을 사용하십시오 iconv -f latin1 -t ascii//TRANSLIT file
.
답변
링크 한 파일이 HTML 문서에서 UTF-8 인 것으로 보입니다.
$ file 0606461.txt
0606461.txt: HTML document, ASCII text, with CRLF line terminators
HTML- 텍스트 변환기를 통해 먼저 실행하는 경우 (예 :
iconv -f UTF-8 -t ascii//TRANSLIT < <(html2text 0606461.txt)
문제가있는 것으로 보이는 UTF-8 조각은 오류없이 음역하는 것처럼 보입니다.
Si fractus illabatur orbis.
Impavidum ferient ruinæ
--Horace.
된다
Si fractus illabatur orbis.
Impavidum ferient ruinae
--Horace.
이 html2text
유틸리티는 시스템에 설치되지 않았을 수 있습니다. 찾을 수 없거나 설치하지 못하면 파이썬 모듈을 포함한 다른 변환기가 있습니다.