CakePHP で ???????? って文字化けするときは SET NAMES utf8 とすると良いです。
1 | mysql_query("SET NAMES utf8"); |
しかし CakePHP ではもっと簡単に設定する方法があります。
CakePHP MySQL で文字化けを防ぐ設定 | Sun Limited Mt.
database.php で ‘encoding’ => ‘utf8′ とすれば良いみたいです。
1 2 3 4 5 6 7 8 9 10 | var $default = array( 'driver' => 'mysql', 'connect' => 'mysql_connect', 'host' => 'localhost', 'login' => 'user', 'password' => 'password', 'database' => 'dbname', 'prefix' => '', 'encoding' => 'utf8' ); |
CakePHP 楽ですね。早く使いこなせるようになりたいものです。
追記: SET NAMES utf8 には脆弱性がある
というわけで以下のページを参考にしたところ PHP 5.2.3 移行は以下のコードで良い様です。
MySQLとPHPの連携:: set names utf8以外の文字化け対策 – KennyQiのPHPメモと息抜きブログ
1 | mysql_set_charset('utf8'); |
かなり詳しくまとめているページがありますので紹介しておきます。
PHPからSET NAMESを使わない方が良い理由と対策まとめ | twk @ ふらっと
コメント