カテゴリー
technology

文字化け

とある環境に MovableType 2.64 をインストールしているのだがどうしても管理画面だけ文字化けが直らない。うーむ、いろいろ日本語関連(特に UTF-8 の取り扱い)で問題があるっぽいことだけはわかったんだけど、なぜだか一向に解決しない。
– MovableType 2.64
– 日本語パッチ(UTF-8版)
– PostgreSQL 7.3.2
– Perl 5.8.0
この状態でエントリ新規追加は可。Publish も可。
しかし編集画面でタイトル、本文など日本語が入力されている箇所にこんな文字化け発生。
「ã¾ããããã。」
誰か情報求む。
一瞬 Perl 5.8 と Jcode の組み合わせが怪しいのかと思い、Encode で書き直すかとか思ったけど、もう眠いのまた明日。

「文字化け」への6件の返信

む、もしかしたら管理ページのエンコーディング指定が間違ってるとか?
mt.cfg 内の PublishCharset だったと思うけど、これを UTF-8 にしないとダメだよ。
あとは、Jcode って書いてるから大丈夫だと思うけど、jcode.pl は UTF-8 に対応してないんで Jcode.pm を入れないといけないんで確かめてみて。

トザキさん、いなみ、情報アリガトウさんです。
>トザキさん
Jcode のバージョンの件、確認してみました。
0.83 がすでにインストールされていたので、0.82 をextlib へ配置(mt-check.cgi で使用されるバージョンは 0.82 と確認済み)。
元ネタ: http://rebecca.ac/milano/mt/readme/jcode.html
だけどダメ。がっくし。
>イナミ
PublishCharset は UTF-8 で管理画面の HTML も問題なし。
うーむ。

文字化けしている状態でsaveすると、文字化けした状態のエントリーになるのでしょうか?

すっかり返事を忘れてました。
> 文字化けしている状態でsaveすると、文字化けした状態のエントリーになるのでしょうか?
はい、そうです。
たまーに調べようとか思って Google で「Perl 5.8 MovableType 文字化け」とか入れてみたら、このエントリがトップになっちまいやがった…
何がなんだか。
http://www.google.com/search?num=50&hl=ja&q=Perl%205.8%20MovableType%20文字化け

perl-5.8.0, Jcode-0.83, MT-2.65-full-lib, RedHat8.0 で同様でした。
格納後のDBの中身までくしゃくしゃでした。
lib/MT/Util.pm encode_html{}中、250行目の “HTML::Entities:encode_entities()” を通るとそうなるようでしたので、コメントアウトしてelse以下を通るようにしたら、とりあえず日本語として読める文字が表示されるようになりました。
decode_html{}側も同じようにしておくとよいかもしれません。
今思えば、243行目を “my $Have_Entities = 1;” とする方が簡単だったかも。

コメントは受け付けていません。