MovableType: 2008年4月アーカイブ
突然、エラーが出た。
Can't locate object method "shift-jis" via package "Jcode" (perhaps you forgot to load "Jcode"?) at lib/MT/I18N/ja.pm line 93.
しかし、原因がまったく分からない。なぜなら、納品用のサイトをごっそりと開発環境から先方のサーバーにDBコピーしただけで、内容が同じ開発環境ではエラーが出なかったからだ。もちろん、プラグインもすべて同じ。
そこで、ひと晩寝かせて、mtを全部、再インストール。おまけに、プラグインも全部入れなおし。これで、開発環境と納品先の環境はまったく同じになった。
それでもエラーが出る・・・で、なんとなく分かってきたのは、
が、よく見ると?な箇所があった。
<MTEncodeText from="utf-8" to "shift-jis">
shift_jisじゃね?と思って、「-(ハイフン)」を「_(アンダースコア)」に直して再構築すると、直った・・・。
なんで、エラーが出る環境と出ない環境があるのか? あ、サーバー違った!
文字コードの表記にご用心。
<MTEncodeText from="utf-8" to "shift_jis">
ps.ブログのコメントでは、「sjis, shift_jis, euc-jp, euc, utf-8, utf8」と書かれてました(^^;
MT4.1からMTIncludeでvarによる変数設定が有効なので、とても便利で(ものぐさともいいますが)使っていたのだけど、出力されたHTMLを見てみてびっくり。
変数内容が出力されちゃってる(笑)
呼び出し元:
<MTInclude module="モジュール1" cat="ほげ~">
モジュール1:
<MTEntries category="$cat">
</MTEntries>
ってしただけなのに、勝手に「ほげ~」とか出ちゃう始末。
仕方ないので、MTSetVar を1行追加して直します・・・納品直前に気づいてよかった。
