2012年9月10日月曜日

ruby の Iconv の文字変換エラー対策

Iconv は変換不可能な文字があった場合にIllegalSequenceエラーを返してくれる。勝手に文字を無視されて知らない間に変なデータが登録されてしまうよりかは良いが、無視をしたい場合はある。たとえばユーザのメアド一覧をCSV出力したい、というときに名前に中国の漢字が含まれているためにCSVが出力できない、というのは好ましくない。

このような目的のためのオプションが Iconv には用意されている。

 str = Iconv.conv("CP932//IGNORE", "UTF-8", str)

とすれば、変換不可能な文字は単に無視される。

使いどころを間違うと問題になりうるオプションではある。

0 件のコメント:

コメントを投稿