![iconv를 사용할 때 파일이 UTF-8로 변환되지 않는 이유는 무엇입니까? [복사]](https://linux55.com/image/92273/iconv%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EB%95%8C%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20UTF-8%EB%A1%9C%20%EB%B3%80%ED%99%98%EB%90%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
Versions:
리눅스 2.6; 4.1.2 아이콘;
ISO 변환은 오류를 반환하지 않지만 변환된 파일은 여전히 다음과 같이 나타납니다.US-ASCII.
질문foobar.txt
UTF-8로 트랜스코딩하는 방법은 무엇입니까 ?
$> file -bi foobar.txt
text/plain; charset=us-ascii
$> iconv -f US-ASCII -t UTF-8 foobar.txt > foobar_utf8.txt
iconv: illegal input sequence at position 573167
$>iconv -f ISO-8859-1 -t UTF-8 foobar.txt > foobar_utf8.txt
$>
$> file foobar_utf8.txt
foobar_utf8.txt: ASCII text
답변1
ASCII는 항상 올바른 UTF-8이므로 변환이 필요하지 않습니다.예전에는ASCII.
이 file
유틸리티는 전체 파일을 보지 않고 시작 부분만 봅니다. 충분히 크면 file
ASCII가 아닌 바이트를 무시할 수 있습니다. 아마도 가능한 모든 고려 사항의 "시작"이 573167
지났을 것입니다 .file
반면에 iconv
변환 만 사용할 수 있습니다.모두 다 아는문자 집합은 UTF-8입니다. 몇 가지 가능한 옵션을 시도하고 성공 여부를 확인한 다음 결과 파일을 비교할 수 있습니다.
예를 들어 파일이 ISO-8859-x 버전 중 하나인 경우 생성된 파일을 검사하여 성공 여부를 측정해야 합니다. iconv
파일은 573167바이트 이후에만 문제가 발생하므로 해당 cut
문자 오프셋에서 시작하는 파일 부분 추출을 사용하여 file
식별해 볼 수 있습니다.