* nix 명령 줄 도구를 사용하여 여러 파일을 UTF-8 인코딩으로 변환하려면 어떻게해야합니까? [복제]


답변:


56

iconv는 많은 문자 인코딩간에 변환합니다. 약간의 배쉬 매직을 추가하면

for file in *.txt; do
    iconv -f ascii -t utf-8 "$file" -o "${file%.txt}.utf8.txt"
done

이 과정은로 iconv -f ascii -t utf-8끝나는 모든 파일에서 실행 되며 .txt, 코드화 된 파일은 이름은 같지만 .utf8.txt대신에 파일로 보냅니다 .txt.

ASCII가 UTF-8의 하위 집합이기 때문에 실제로 파일에 아무것도하지는 않지만 인코딩 간 변환 방법에 대한 질문에 대답하는 것은 아닙니다.


2
공백이있는 파일 이름을 처리하려면 var $ i를 인용해야합니다.
Richard Hoskins

그것은 일을 할 것이고, 하나의 BOM을 추가 할 것입니다.
jason

iconv가 BOM을 추가 하시겠습니까? UTF-8을 사용하지 않을 것이라는 인상을 받았습니다.
Richard Hoskins

5
나는 이것을 iconv (GNU libiconv 1.11)로 테스트했지만 BOM을 추가하지 않았습니다. iconv는 입력에 BOM이 있으면 ASCII를 사용하지 않는 BOM 만 추가한다는 것을 이해합니다. BOM은 문제가 있으며 UTF-8에서는 필요하지 않습니다.
Richard Hoskins

2
iconv 버전이 -o 매개 변수를 지원하지 않는 경우 직접 >>을 사용하여 쉘 재 지정을 사용할 수 있습니다.
rob
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.