ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Linux] iconv
    서버 2016. 11. 10. 11:39

    iconv명령어를 사용하면 파일의 인코딩을 다른 형식으로 변경할 수 있습니다.

    아래는 iconv 명령어의 옵션입니다.

    $ iconv --help
    Usage: iconv [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]
    or:    iconv -l
    Converts text from one encoding to another encoding.
    Options controlling the input and output format:
      -f ENCODING, --from-code=ENCODING
                                  the encoding of the input
      -t ENCODING, --to-code=ENCODING
                                  the encoding of the output
    Options controlling conversion problems:
      -c                          discard unconvertible characters
      --unicode-subst=FORMATSTRING
                                  substitution for unconvertible Unicode characters
      --byte-subst=FORMATSTRING   substitution for unconvertible bytes
      --widechar-subst=FORMATSTRING
                                  substitution for unconvertible wide characters
    Options controlling error output:
      -s, --silent                suppress error messages about conversion problems
    Informative output:
      -l, --list                  list the supported encodings
      --help                      display this help and exit
      --version                   output version information and exit


    us-ascii 인코딩 형식을 가지는 test.txt파일을 euc-kr 형식으로 변경해보겠습니다.

    # 파일 인코딩 형식 확인
    $ file -I test.txt
    test.txt: text/plain; charset=us-ascii
     
    # iconv에서 지원하는 인코딩리스트 확인
    $ iconv -l | grep ASCII
    ANSI_X3.4-1968 ANSI_X3.4-1986 ASCII CP367 IBM367 ISO-IR-6 ISO646-US ISO_646.IRV:1991 US US-ASCII CSASCII
    $ iconv -l | grep EUC
    EUC-JP EUCJP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE CSEUCPKDFMTJAPANESE
    CN-GB EUC-CN EUCCN GB2312 CSGB2312
    EUC-TW EUCTW CSEUCTW
    EUC-KR EUCKR CSEUCKR
    EUC-JISX0213
     
    # 파일 인코딩 변환
    $ iconv -f US-ASCII -t EUC-KR test.txt > convert_text.txt
    $ ls
    convert_text.txt


    만약 iconv 명령어 실행 중 iconv: 파일:라인수:글자수: cannot convert 라는 에러 (iconv: test_.csv:3504:51: cannot convert)가 발생할 시 아래와 같이 -c 옵션을 붙여줍니다. -c옵션은 변환할 수 없는 문자를 버리는 옵션입니다. (파일전체 변환이 안되느니 차라리 버리는게 편함)

    보통 한글 파일을 변환하는데 자주 발생합니다.

    $ iconv -c -f US-ASCII -t EUC-KR test.txt > convert_text.txt


    댓글