bitlbee の文字化け問題

Posted by yoosee on Debian at 2007-09-29 22:00 JST

*1  bitlbee は一部変換出来ない文字があると全部化けるのが困る

最近は AIM, Gtalk (+twitter) は全て bitlbee 経由の IRC クライアントで使っているのだが、bitlbee では utf8 のハンドリングで一文字でも変換に失敗するとメッセージ全文が文字化けしてしまう。文字コード変換をしている bitlbee/util.c を見ると、do_iconv(...) 内で iconv() が (size_t) -1 を返したときの事後処理が全くないから、そりゃ化けるだろうという感じではある。

特に鬼門かつ頻繁に出るのが "〜" (0x2141) なわけだが、ad-hoc にこれだけでもエスケープするコードを書いて逃げるのがいいか。真っ当に対応するならどうするべきだろう。

*2  Pidgin (aka Gaim) での対応

と言う事で Pidgin ではどうしてるんだろうと思ってみてみたら、libpurple/desktopitem.c 内で glib の g_convert(...) を使ってる。で、glib の gconvert.c では iconv() の EILSEQ エラー(入力に無効なマルチバイト文字列がある) の場合はその先の文字列を継続して変換しているっぽい。真面目に自前で書くと結構面倒そうだが、Glib 以外にこの手の iconv wrapper で良いのは無いかな。

( Permalink | Comments (0) | tags: irc  im  )
Comments

Please write your comment. email address won't appear. Cannot use any HTML tags in comment.
コメントをお書き下さい。メールアドレスは公開されません。 またHTMLタグは利用できません。
Name   E-mail   URL
Comment

About W.W.Walker

World Wide Walker は yoosee による blog です。PDA, Web・サーバ技術, 美味しい食べ物などの話題を取り上げています... read more

このエントリーのブックマーク

Monthly Archives

Select Month to read