先日のエントリで、「HTML::Widget が文字化けする」とか書いたのですが、HTML::Element の _xml_escape メソッドの問題 でした。
チケットは切られているので、とりあえず修正されるのを待つしかないのですが、2ヶ月以上放置されていて、早い対応は期待できなさそうなので、HTML::Widget::Kwalify に以下のコードを入れて強引に対処してます。
{ no warnings 'redefine'; *HTML::Element::_xml_escape = sub { foreach my $x (@_) { $x =~ s!([<&>])!'&#'.(ord($1)).';'!seg; } return; }; }
あと、テスト追加したり、色々修正。ちょっとずつですが、形になってきてます。