MovableType3.2 を MySQL 5.0 で使う

会社の環境が MySQL 5.0 だったので,何も疑問に思わずインストール。最初はうまくいきました。サーバは FreeBSD。そこで調子に乗ってもう1つのサーバにインストールしてみました(ちなみにライセンスは別途購入)。ところが今度はうまくいかない。画面が文字化けしてしまう。最初のインストールのときと何が違うか考えてみた。
いま調べてみると最初のイントールはこうなっている。

  • データベースの文字コードは latin1
  • mt-config.cgi の PublishCharset は utf-8
  • mt-config.cgi の SQLSetNames は指定せず

うわ,これで平気なのか? とりあえず無事に動作している。と思ったら mysqldump の結果がおかしい。二重にエンコードされている気がしたので,明示的に latin1 を指定したら,無事に utf-8 でダンプできている模様。いいのかなー。
さて2つ目のサーバではこの設定ではうまくいかない。これはどうも MySQL のデフォルト文字コードが違うからではないかとおもい調べた。mysql を 起動して status するとこんな感じ。


最初のサーバ :

Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1

うまくいかないサーバ :

Server characterset: ujis
Db characterset: ujis
Client characterset: ujis
Conn. characterset: ujis

そこで CREATE DATABASE hoge CHARACTER SET utf8 で,文字コードを明示的に指定したデータベースを作って,SQLSetNames も指定してみた。つまりこんな感じ。

これでうまくいきそうだったけど,よくみると画面上の文字列にバックスラッシュが入りまくっている。過剰にエスケープされているのか。
backslash
このへんで挫折中。