やった!やったよ!直ったよ!
というわけで、経緯は前エントリを見ていただいて、
文字化け直りました。
utf8::encodeやencode_utf8などのメソッドはだめで、
MTのメソッドMT::I18N::encode_textでエンコードしたらOKでした。
$string = MT::I18N::encode_text( $string, 'utf-8', undef );
という感じです。
MT::I18N::encode_textの引数は1つめが文字列、
2つめが変換前のエンコード($from)、
3つめが変換後のエンコード($to)、
という感じになります。
ここで、3番目の引数($to)をundefにしておくのがミソ、
なのかもしれない・・・・
undefにするとどういうエンコードになるんだろう・・・?というのは
相変わらず分からないのだけど、
動いたのでほっときます。
HatenaBookmarkWidgetはもともとは僕が作ったウィジェットではないですが、
ダッシュボードにずらっとブクマされた記事が並んでいるのをみると、
やるきが出て、いいプラグインだと思います。
HatenaBookmarkWidget2.090819.zip
今回、XML::Simpleにforcearrayオプションをつけることを知ったので、
それで全体的にソースコードがきれいになりました。
Using MT内の関連ページ:
MT NEWSとlerning MT
XML::SimpleとかUTF8とかまじわからん
HatenaBookmarkWidget Modified
どうも、元作者です。
放置してしまってってすみません。面倒見ていただいてありがとうございます。
ちなみに、MT::I18N::encode_textで引数にundefを渡した場合は、mt-config.cgiに書いてあるPublishCharsetの値が使われるはずです。(それもなければutf-8)