본문 바로가기
컴퓨터/리눅스

iconv : 파일 내용의 encoding 을 변환

by adnoctum 2010. 10. 18.


   삼바로 걸어 쓰거나, 서로 다른 서버에서 서로 다른 encoding 으로 파일을 만들었을 경우, 파일 내용을 제대로 볼 수 없을 때가 있다. 특히 메모장과 같은 단순한 프로그램에서도 ANSI 이외의 conding 으로 문서를 작성하게 되면 간단한 내용 조차도 내용이 깨지게 된다. 이럴 때는 iconv 로 encoding 을 바꾸어 주면 된다. 기본적인 사용법은 다음과 같다.

iconv -f encoding -t encoding inputfile -o outputfile

-f 다음에는 원래의 encoding 을 써주고, -t 다음에는 변환시킬 encoding 을 써준다. 결과가 stdout 으로 출력되는데, 따라서 파일로 출력을 원할 경우 -o 다음에 출력시킬 파일 이름을 지정해 준다. 예를 들면,

iconv -f cp949 -t utf-8 test.txt -o test.ttt


와 같다. 윈도우즈의 경우 많은 경우 cp949 의 encoding 을 사용하는 것으로 보이는데, 우분투 등의 리눅스는 utf-8 을 기본으로 사용할 때가 많기 때문에 가끔 내용이 깨지는데, 위와 같이 하면 내용을 볼 수 있다.

iconv --list

를 하면 code set 을 전부 볼 수는 있다. encoding 이 뭘로 되어 있는지 알 수 없는 파일에 대하여 encoding 을 찾는 방법은 잘 모르겠다. 가끔 그래서 euc-kr, utf-8, cp949 등등을 전부 해볼 때가 있어서 좀 짜증이 나긴 하는데...

(답글 보고 수정함)
   파일이 어느 code page로 encoding 되어있는지 보기 위해서는 file 명령어를 사용하면 된다. 다음과 같이.