Ruby에서 iconv 사용시 주의사항

[Development]
한국어 (EUC-KR)로 되어있는 Content를 UTF-8로 변환할 경우, iconv를 이용해서 쉽게 변환할 수 있다.

[code type=ruby]
conv = Iconv.new('UTF-8', 'EUC-KR')
converted = conv.iconv(content)  # => UTF-8로 변환된 문자열
[/code]

문제가 되는 경우는 Content 내에 확장 완성형 문자 (ex. 아햏햏)가 있는 경우에 발생한다.
변환을 시도할 경우, Iconv::IllegalSequence 에러가 발생하게 된다.
이럴 경우, Iconv 객체를 생성할 때, //IGNORE 옵션을 붙여서 처리하지 못하는 문자열을 무시하도록
설정할 수 있다.

[code type=ruby]
conv = Iconv.new('UTF-8//IGNORE', 'EUC-KR')
[/code]


2007/01/19 12:22 2007/01/19 12:22
TAG. , ,

이 글의 트랙백 주소 :: http://blog.superkdk.com/trackback/35

  1. Subject: UTF-8 로 charset 변경작업. 대 실패

    Tracked from For A While [2007/02/28 17:42]
     삭제

    서버 환경이 EUC-KR 에서 UTF-8 로 변함으로 인해 페이지들의 charset(문자세트) 변경이 필요해졌습니다.파일이 엄청나게 많은데 그 많은 파일들을 모두 노가다 할 순 없고. 필요한 파일만 바꿔 쓰면 젤 좋긴한데 include 가 좀 많이 있어서 서로서로 깨져버릴까봐 두렵고. 그래서 모든파일들을 일괄변환하는 법을 찾아봤습니다.한창 찾다가 이런 글을 올려놓은 카페가 보입니다. 뭐 조금 복잡하게(?) 설명이 되있길레 무슨뜻인지 알아 듣지 못하고..

  2. Subject: [Ruby] Iconv 사용법

    Tracked from Ssami~* [2007/11/12 12:51]
     삭제

    다음은 ruby에서 iconv을 사용하는 방법이다. # module 선언 require 'iconv' ... # EUC-KR을 UTF-8로 변환하기 위한 선언 conv = Iconv.new('UTF-8', 'EUC-KR') #Convert 'document' converted = conv.iconv(document) Tip1. Document내 확장 완성형 문자가 존재하는 경우, 에러발생 (참조 : superkdk in the NET) 위 참조에서..

::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::

  1. 정목 [2007/01/19 21:56]  [댓글주소]  [수정/삭제]  [댓글쓰기]

    와우~ 좋은 팁 감사합니다.
    안그래도 동아리 프로젝트에서 iconv 때매 죽는 문제가 골치였는데 말이죠..

  2. 정욱 [2007/03/11 19:13]  [댓글주소]  [수정/삭제]  [댓글쓰기]

    멋진 팁이네요. 저도 골치였는데 ㅎㅎ

  3. superkdk [2007/03/11 23:29]  [댓글주소]  [수정/삭제]  [댓글쓰기]

    요즘은 EUC-KR을 UTF-8로 인코딩할 때,
    1. EUC-KR -> UTF-8
    2. 1에서 에러가 발생할 경우, CP949 -> UTF-8
    3. 2에서 에러가 발생할 경우, CP949 -> UTF-8//IGNORE
    로 사용하고 있습니다. ^^

[로그인][오픈아이디란?]