XML::Parser を Hack して utf8 フラグ問題から解放される
意外と知られてないのかもしれないので書いてみる。というか竹迫さんのパワポに書いてるまんまなんだけど、XML::Parser のソースに以下のパッチを当てるのみ。
--- XML-Parser-2.34-orig/Expat/Expat.xs Mon Jul 28 23:41:10 2003 +++ XML-Parser-2.34/Expat/Expat.xs Fri Aug 27 08:36:39 2004 @@ -17,6 +17,8 @@ #undef convert +#undef SvUTF8_on + #include "patchlevel.h" #include "encoding.h"
するとあら不思議、XML::Parser で utf8 フラグが立たなくなります。ということは XML::RSS でもまた然り(XML::RSS の中では XML::Parser で parse してる)です。
かなり ad hoc ではあるけど、アプリケーションのコードの中でマジカルなことをやらなくていい分、精神衛生上はよろしいかと。XML::Parser が update されたときに注意すべし...と。
ちゃんとやりたい方は、
あたりを使いましょう。