MT4にて「指定したテキストファイルを加工して挿入する」プラグインを書いた。
MT5に移行したところ、テキストファイルに含まれる日本語が化けるようになった。
プラグインは内部でネイティブなプログラムを呼び出しており、そのプログラムは UTF-8でエンコードされたテキストを出力するようになっている。
悩んでは放置をしばらく繰り返した末、答えに行き着いた。
「プログラムの出力は UTF-8になっているけど、perlの内部表現としての UTF-8にはなっていなかった」という理由。
所謂「utf8フラグ」の問題で、プログラムの出力をそのまま使うのではなく Encode::decode_utf8()に食わせた結果を使うようにしたらあっさりと解決した。
MovableTypeやそのプラグインの問題ではないので「MovableType プラグイン 文字化け」等のキーワードで検索しても情報がなかったのも道理。
2014/03/16追記
MT6へ移行したところまたしても文字化けするように。*1
再び悩んでは放置を繰り返した末、utf8プラグマを記述するという答えに行き着いた。
*1 OSを入れ替えたタイミングでもあるので MTのバージョン差でなく Perlのバージョン差という可能性も。