• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP+MySQLいくら解決策をやっても文字化け)

PHP+MySQL文字化け問題の解決策を知りたい

このQ&Aのポイント
  • PHPやMySQLで日本語の文字化け問題が発生しており、解決策を探しています。MAMPを使用して開発を行っており、ターミナルやPHPmyadminでの日本語表示、MySQLからのデータ取得、PHPからのデータ挿入などが文字化けしてしまいます。
  • 既に様々な試みを行ってきましたが問題解決には至っていません。環境はMac OS X 10.6.5 snow leopard、MAMP1.9.2、PHP5.3.2、MySQL5.1.44、phpMyAdmin3.2.5、Apache2.0.63です。具体的な解決策の一例として、my.cnfやphp.iniの設定変更、<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />の追加などを試しました。
  • しかし、これらの設定変更後にMAMPを再起動しても問題は解消しませんでした。ターミナルでの文字コード確認では、character_set_client、character_set_connection、character_set_database、character_set_resultsなどの値がutf8になっていることが確認できます。しかし、それでも文字化けは発生しています。この文字化け問題の解決策を教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

とりあえず、 mbstring.http_input = auto この記述は、どうも自動的に変換を書けるっぽいので、コメントアウトしておいたほうが良いと思います。 で、ネット上の情報を見るに、とりあえず、「mysqld」の記述を、 default-character-set=utf8 skip-character-set-client-handshake だけ残して、他をコメントアウト(または削除)してみてください。 ついで、一度今使ってるデータベースはおいておいて、 新しく、CREATE DATABASEしてみてください。 その際、 create database yourdatabase default character set utf8; として、文字コードも指定する。 この状態で、再度試してみてはいかがでしょう。 (当然、MAMPの再起動を忘れずに。)

peco33
質問者

お礼

ありがとうございます。 とりいそぎphp.iniとmy.cnfの設定は変えず、 新規データベースをphpmyadminで作り、 確認した所、日本語表示されました。 たぶんこれで問題ないなと思いましたが php.iniを見直し mbstring.http_output = pass を念のため mbstring.http_output = UTF-8 に変えました。 これでも問題なく日本語表示されました。(変える前から問題なかったので必要あるのかどうかわかりませんが。。) ただ、一点 ターミナルから見た時にレコードの日本語は 表示はされているのですが、 新規日本語入力をすると 文字化けします。(ちゃんと出る字と文字化けする字とあります) これはすべてphpadminから入れていけばいいのかなと思いましたが 今後、何か問題でてきます?

その他の回答 (1)

回答No.2

ちょっと回答遅くてすみません。 ターミナルから入力してちゃんと出る文字とでない文字の切り分けをある程度しておいたほうがいいですね。 OSX固有の問題なのかもしれませんし。 OSXってことは、ターミナルもutf-8なのでしょうか。 PHP関係なく、uft-8で指定しているデータベースに値を突っ込んでも、文字化けするというのは、何か別の原因があるのかもしれませんね。 とりあえず、Okwaveの、データベースのカテゴリでも、質問投げてみたほうが解決早いかもしれませんね・・・・

peco33
質問者

お礼

回答遅くなり申し訳ございません。 ありがとうございます! なんか色々やってるうちにできるようになり どれがよかったのかがわかりません^^; とりあえずよかったです!