mysqlの文字化け
mysqlの4.1だったか、以前、文字化けで悩んだことがあります。今回、5.1にバージョンアップするにあたり、my.cnfを見直しました。これまでは、default-character-setをbinaryに設定していましたが、utf8のアプリケーションしか使わなくなったことから、utf8に変更しました。すると、PHPで文字化けが発生しました。コンソール等では問題ありません。utf8に統一しても、PHPのMySQLへのアクセスのデフォルトが、utf8ではないから文字化けするということのようです。解決策は、set names utf8を実行するようにすることですが、これは、問題のある方法のようでした。mysql_set_charsetを使うのが良いらしいのですが、これは、PDOでは利用できません。最終的には、$pdo = new PDO('mysql:host=localhost;dbname=' . $dbName, $userName, $userPassword, array( PDO::MYSQL_ATTR_READ_DEFAULT_FILE => '/etc/mysql/my.cnf' ));とすることで解決しました。