MovableTypeで文字化け

某所にインストールしたまましばらく放置していたMT2.661をテストしてみたら、例によって日本語が文字化けする現象が生じた。Macのブラウザでテキストエリアが文字化けする現象はスタイルシートの設定で対応できるが、Mac以外のブラウザでもテキストエリアの文字化け現象が起きるとは意外。MT2.661のインストールの際にはMT.euc.patchを適用しているので、この現象、スタイルシートの問題ではなさそうだ。
管理画面のHTMLソースをみると、テキストエリアの日本語がHTML Entityに変換されている。いろいろ調べた結果、mt.cfgで
# NoHTMLEntities 1

NoHTMLEntities 1
に変更したら解決した。

lib/MT/Util.pmには、encode_html()とdecode_html()があって、クロスサイトスクリプティング脆弱性の対応がなされている。ここでPerl環境にHTML::Entitiesがインストールされていると、それぞれHTML::Entities::encode_entities()とHTML::Entities::decode_entities()が実行される。この変換処理は、上記の設定でオフにすることができる。