*******************************************
環境
・Windows XP Home Edition Version 2002 SP2
・Apache2.24
・PHP5.23
・Mysql5.0
・phpMyAdmin3.1.0
*******************************************
前回 「mcrypt の設定」まで終了していよいよ
phpMyAdminへアクセスできるようになりました。
私はphpを「euc-jp」で作成していて、phpのデフォルト文字コードを「euc-jp」にしているので、
MySQLの接続照合順序を「ujis_japanese_ci」に設定してます。
テーブルの照合順序も「ujis_japanese_ci」にしました。
ホスティングサービス(レンタルサーバ)では、mysql5では「UTF-8」が標準になっていることが多いので
ローカル環境でも「mysql5」では標準に設定しています。
(※mysql4はutf8未対応だが、mysql5はutf8が標準)
この環境で、phpでmysqlへの書き込み、読み込みを行うと文字化けを起こしてしまいました。
mysqlの設定や、phpの設定を変更するのではなく今回はphpスクリプトで対策しました。
<?php
$db = mysql_connect('host', 'user','password');
mysql_query('SET NAMES ujis;');
$db = mysql_connect('host', 'user','password');
mysql_query('SET NAMES ujis;');
DBに接続した後に、SET NAMESクエリを発行します。
これでmysqlの文字コードを変更することができます。
「SET NAMES ujis」でmysqlの文字コードを「euc-jp」にすることにより、
phpやテーブル設定など全て「euc-jp」で統一できた為、文字化けが直りました。