XAMPP on WindowsでMySQLの文字化け対策
専門学校の授業中にXAMPP Ver1.7.4をインストールして、PHPとMySQLを使って
授業をしています。
そろそろPHPの授業でデータベース連携の内容に入ろうとした所で
事件が起こりました。
「MySQLに登録したデータ(日本語)がすべて文字化けする。」
ということで、調べてみました。XAMPP Ver1.7.4の時点ではMySQLの標準文字コードはlatin1のようです。(?)
PHPの方は文字コードをUTF-8に変更しているので、PHPMyAdminから
追加、更新すると文字化けした状態で登録されてしまいます。
(mysqlクライアントからも同様の結果になりました。
set names sjisしても文字化けが直りませんでした。。これだと無事更新できそうだけど…?)
結局、MySQLの設定ファイルmy.iniを修正して、デフォルトの文字コードを
変更すれば修正できそうだという情報を見つけたので、以下の記述を追加しました。
[XAMPPインストールフォルダ]¥mysql¥bin¥my.ini
[mysqld]
character-set-server = utf8
skip-character-set-client-handshake
[mysqldump]
default-character-set=utf8
[mysql]
default-character-set=utf8
character-set-serverの設定名は、
古いバージョンだと、default-character-setになるようです。
サーバを再起動すると、無事更新できるようになるかと思ったのですが、
文字コードを指定する前に作成したデータベースに関しては、文字コードが
設定されているようで、この設定では反映されませんでした。
なので、以下のクエリを実行して、デフォルトの文字コードを変更します。
ALTER DATABASE sampledb default character set=utf8;
これでも、すでに登録されたデータに関しては復活しないようなので、
テストデータに関しては諦めるしか無いのかもしれません。。。
| 固定リンク
| コメント (1)
| トラックバック (0)