• 締切済み

MySQLの日本語文字化け対策

Mysqlでの日本語文字化け対策がうまくいかなくて困っています。 いくつもの参考ページを検索で探し、実行してみたのですが、どうにもうまくいきません。 insert into tbl values('あああ');のように、cmdに打っている時点では日本語は表示できています。 しかしselectで呼び出すと、'?f?u???'といった表記に化けてしまいます。 phpMyAdminでの表記も同様に化けます。 下記に環境と施した対策を記しますので、原因がわかる方のアドバイスをお待ちしております。 window7 64bit Xampp1.8.0 Apache 2.4.2 MySQL 5.5.25a PHP 5.4.4 phpMyAdmin 3.5.2 参考記事 http://blog.livedoor.jp/ryo511-web/archives/4915440.html cmd上でshow variables like "char%"でキャラクタセットを確認したところ character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_results utf8 character_set_server utf8 character_set_system utf8 と、表示上は意図したとおり、utf-8になっているようです。

みんなの回答

  • freetaka
  • ベストアンサー率53% (106/197)
回答No.1

それはcmd自体のcharsetがUTF-8ではないからです コマンドプロンプト上に以下コマンドを打ち込んでください UTF-8に変更する場合のコマンド chcp 65001 デフォルトに戻す場合 chcp 932 以上おためしください

piya0617
質問者

お礼

自己解決したのでご報告です。 結論から言うと、照合順序のデフォルト設定がlatinのままだったようです。 collation_server=utf8_general_ciをmy.iniに追記することで、テーブルを作成したときにデフォルトでutf8の照合順序になり、日本語文字化けが解消されました。 回答してくださりありがとうございました。

piya0617
質問者

補足

アドバイスどおり、chcp65001でcmdをUTF8にしてみたところ、今度は日本語自体が打てなくなってしまいました。 alt + 半角/全角でも日本語切り替えができない状態でうす。。。

関連するQ&A