iconv로 인코딩 변환하기

01.25.2010

일하고 있는 전산정보원에서 학교 민원을 정리해두라고 하셔서 민원건수를 봤더니 3000건 + 600건 = 3600건 이었다.

사람의 힘으로 하는 것은 하나님의 섭리에 어긋난다고 판단하여 파이썬 스크립트를 짜서 돌리고 csv로 저장했다.

그런데, csv를 엑셀로 변환하려고 하는데 UTF-8 인코딩 때문에 한글이 다 깨지는 것이 문제였다.

iconv 라는 툴을 써본적이 있어서 다음과 같이 돌렸더니 에러.

$ iconv -f UTF-8 -t MSCP949 b51.csv > b51.cp949.csv

iconv: illegal input sequence at position 276082

근본적인 이유는 입력파일의 인코딩상에서 깨진문자가 들어있으면 에러를 뱉고 죽게끔 iconv가 설계되어 있다고 하지만 소스를 뜯어보지 않아서 명확히 모르겠고, 방법론적 이유를 찾아봤더니 역시나 RTF 문제였다.(read the fxxx manual)

KLDP에서 어떤분은 소스를 분석해가면서 패치를 제공할 방법을 모색하는 모습도 있었는데, 입력 파일에서 깨진문자를 빼고 변환을 해주는 -c 옵션으로 간단히 해결할 수 있었다.

$ iconv -c -f UTF-8 -t MSCP949 b51.csv > b51.cp949.csv

매뉴얼을 잘 작성하는 것도 중요하지만, 매뉴얼을 읽는 것이 더 중요하다는 것을 새삼 느꼈다.

한줄요약 : 구글링 하기전에 매뉴얼을 읽자

« 이전 페이지다음 페이지 »