2014年2月10日月曜日

PHPのPDO(MySQL)を使うと文字化け

MySQLデータベースに、PHPのPDOを使うと文字化けして悩みました。
結論からいえば、見当違いのミスで悩んでいました(笑)

MySQLの文字コードをUTF8に統一し、PHPでの文字の扱いを間違っていなくても、日本語は文字化けします。
対策としては、PDOの接続文字列に、下記を追加します。

;charset=utf8

PHP 5.3.6より古い場合は、これでは効果がありませんので、オプションで、my.cnfの場所を指定する必要があります。
このあたりは、PHPのマニュアルに記載があります。


以前、調べて解決していたはずなのに、文字化けして、悩みました。
結局、文字化け対策済みの自作ライブラリを用いず、昔の未対応のライブラリを使っていたのが原因でした。
こんなことで、何日も悩んでいたとは。。。
まぁ、よくあることです。

0 件のコメント:

コメントを投稿