임동문의 횡설수설

dmlim.egloos.com

포토로그


라이프로그


한글 텍스트 파일의 캐릭터셋을 자동으로 판단하는 프로그램 프로그래밍

소스 코드들이 많이 있는 디렉토리가 있다..

내가 작성하는 코드들에 중국어나 일본어가 있으리 만무하지만,

울트라 에디트로 작성한 파일을 많이 저장하다보니...

가끔 서로 다른 캐릭터 셋으로 만들어 놓는 경우가 종종 있다.

윈도에서는 주로

ASCII, EUC-KR, CP-949, UTF-8 등의 캐릭터 셋으로 저장하는데,

가끔 유니코드 텍스트 파일도 BOM 을 넣기도 하고 빼기도 하고 해서,

나도 울트라 에디트로 열어보기 전에는 어떤 캐릭터 셋으로 저장을 해놨는지 헤깔린다.

그래서 그 수많은 파일 중에서 UTF-8 으로 저장된 파을을 찾으려고 했더니 시간이 너무 많이 걸리더라.. ㅋㅋ

인터넷을 뒤져서 캐릭터셋을 자동으로 판별해 주는 코드를 입수해 보려고 노력을 했으나..

문득... 인터넷 뒤지는 시간이나 내가 만드는 시간이나 별반 차이가 없으리라 생각하고..

이틀간 위키를 뒤져가며 각 캐릭터셋의 인코딩 방식을 찾아서 뚝딱뚝딱 코딩을 했는데.. 생각보다 잘 동작 한다. ㅋㅋ

US-ASCII, EUC-KR, MS-949, UTF-8 형태로 된 인코딩을 자동으로 찾아서 판별해 준다..

물론 BOM 이 붙은 넘들은 BOM 만 가지고 판별을 하고 BOM 이 없는 넘들은 인코딩 오토마타의 간략버전으로 판별한다.

US-ASCII ⊂ EUC-KR ⊂ MS-949
US-ASCII ⊂ UTF-8

의 포함 관계는 대충 아시리라 보고..

유닉스 같은 데서는

find . -type f | xargs detectcharset

이런 식으로 하시면 대략 파일들의 캐릭터 셋을 아시리라

detectcharset.zip

핑백

덧글

  • 하이시커 2007/11/28 19:48 # 답글

    저도 가끔 이런 프로그램이 있었으면 했는데, 이렇게 만들어주시다니.
    감사히 쓰겠습니다.
  • tot 2008/01/04 14:29 # 삭제 답글

    file 이라는 유틸이 있습니다.
    file xxx.txt 하면 캐릭터셋을 뱉어주고
    이미지등 다른종류의 파일정보도 잘 뱉어줍니다.
  • 머리말 2008/02/29 02:22 # 답글

    음... file 이라는 좋은 툴이 있었군요... 역시 사람은 배워야 해..ㅋㅋ 근데 EUC-KR, MS949 는 판별을 못하는 군요..
댓글 입력 영역