0137134
2009/01/12(月) 21:40:120x80より大きい値とmb_flagが1のときだけエスケープされるはずです。
1.5.7.1以前のバージョンではmb_flagが無くて、0x80より大きい値という条件しかなかったので、
マルチバイト文字の2バイト目が「{」や「\」などの場合におかしくなってました。
mb_flagをマルチバイト文字の1バイト目で1にすれば、
次のバイトが0x80以下でもエスケープされるという仕組みのはずですが、
mb_flagの設定方法がまずくて、2バイト目でクリアされなくて
さらに次のバイトまでエスケープされる場合がある、という状況です。
ttp://bugzilla.gnome.org/show_bug.cgi?id=437346
で、T.Matsuyama氏が提示したコードが正しく動くはずです。
#そこまで分かってるな自分でやれ、と言われそうだ……
すいません、環境作りが荷が重いですorz