XREAでCakePHPを使った時に文字化けする

XREAのサーバでUTF-8を指定してCakePHPを使った時に
文字化けが発生し色々試して解決(って言っていいのか?)したのでそのメモです。

環境

MySQL文字コード

  • 文字セット: UTF-8 Unicode (utf8)
  • DBの接続照合順序: utf8_general_ci
    • DBを作成すると自動でutf8_general_ciが選択されutf8_unicode_ciが選択できないサーバーの仕様なのかな…
  • テーブル・フィールドの接続照合順序: utf8_general_ci
    • こっちはutf8_unicode_ciが選択できるが、よくわかってないのでDBにあわせる

現象

CakePHPUTF-8で表示すると文字化けする

対策

app/config/database.php の設定で

class DATABASE_CONFIG {

        var $default = array(
                'driver' => 'mysql',
                'persistent' => false,
                'host' => 'localhost',
                'login' => 'user',
                'password' => 'pass',
                'database' => 'db',
                'prefix' => '',
                //'encoding' => 'utf8',
        );
}

CakePHPの1.2ではDBのencodingにutf8を指定する事がよくかかれていたけど、
ここでは 'encoding' => 'utf8' の設定をしなければ文字化けしなかった。


知っている人には簡単な理由かもしれないけど、
まだまだ知らないことが多すぎるな >自分