« Activity#finishActivityを解析した | トップページ | 第7回中国GTUG勉強会@広島を開催しました。 »

2011年6月 8日 (水)

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;

これでも、すでに登録されたデータに関しては復活しないようなので、
テストデータに関しては諦めるしか無いのかもしれません。。。

|

« Activity#finishActivityを解析した | トップページ | 第7回中国GTUG勉強会@広島を開催しました。 »

DataBase」カテゴリの記事

コメント

ALTER DATABASE sampledb default character set=utf8;
には非常に助けられました
ありがとうございました

投稿: shiroineko | 2011年9月28日 (水) 17時41分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/50625/51888192

この記事へのトラックバック一覧です: XAMPP on WindowsでMySQLの文字化け対策:

« Activity#finishActivityを解析した | トップページ | 第7回中国GTUG勉強会@広島を開催しました。 »