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;
これでも、すでに登録されたデータに関しては復活しないようなので、
テストデータに関しては諦めるしか無いのかもしれません。。。
| 固定リンク
「DataBase」カテゴリの記事
- XAMPP on WindowsでMySQLの文字化け対策(2011.06.08)
- DateTime型のデータがキーになった時の検索(2009.02.18)
- SQLServerのインデックスについて調べてみました。(2008.12.28)
- SQLServerパフォーマンス関係の情報取得メモ(2008.12.11)
- SQLServerのログを参照する方法(2008.11.17)
この記事へのコメントは終了しました。
コメント
ALTER DATABASE sampledb default character set=utf8;
には非常に助けられました
ありがとうございました
投稿: shiroineko | 2011年9月28日 (水) 17時41分