한국어 (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]
[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]



::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::
와우~ 좋은 팁 감사합니다.
안그래도 동아리 프로젝트에서 iconv 때매 죽는 문제가 골치였는데 말이죠..
멋진 팁이네요. 저도 골치였는데 ㅎㅎ
요즘은 EUC-KR을 UTF-8로 인코딩할 때,
1. EUC-KR -> UTF-8
2. 1에서 에러가 발생할 경우, CP949 -> UTF-8
3. 2에서 에러가 발생할 경우, CP949 -> UTF-8//IGNORE
로 사용하고 있습니다. ^^