xamppを初期インストールした状態では、プログラム上からsqlを実行して、日本語データを入れようとすると文字化けしたデータがデータベースに格納されてしまいます。xamppをインストールした後は以下設定を実施してください。
【my.iniの編集】
- 「C:\xampp\mysql\bin\my.ini」を開いて、以下図の通りに変更してください。(変更部分のみ抜粋しています。)
【php.iniの編集】
- 「C:\xampp\php.ini」を開いて、以下図の通りに変更してください。(変更部分のみ抜粋しています。)
- 変更後、mysqlを再起動して完了です。既に作成済のDB、テーブルには反映されないため、作り直してください。その際に、一旦DBをエクスポートして、エクスポートデータの「latin1」となっている部分を「utf8」に置換し、インポートすれば楽に復旧できます。
※上手くいかない場合は、phpMyAdminのSQL実行画面で「SHOW VARIABLES LIKE 'char%'」を実行してみてください。以下図の状態となっているか確認してください。もし、デフォルト設定のlatin1が設定されていた場合、設定を間違えている可能性があります。
【その他注意点】
- テーブルを新規に作成する際は、Collationの項目を「utf8-general_ci」に設定する必要があります。(Collationは照合順序を意味します。)