みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

MySQL+PHP文字化け

PHPからMySQLを使っています。
MySQLもPHPも文字コードはutf8を使っているのですが、PHPMyAdminから入力した日本語を普通に読み出すと文字化けして「??????」になってしまいます。また、自作コードからの日本語のinsertもできません。
しかし、「set character set utf8」を先に実行しておくといずれも上手くいきます。
これは一体どういうことなのでしょうか?
そもそも全てutf8で統一しているつもりなのですが、MySQLかクライアントのどちらかで他のコードが使われているということなのでしょうか?
MySQLはstatusなどを見てもutf8になっているので、どちらかと言えばクライアントの方が臭うのですが、よくわかりません。

どうか知恵をおかしください。

投稿日時 - 2009-07-04 12:00:16

QNo.5097260

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

phpMyAdminの文字コードの設定が、適切に行われていないのでは?

phpMyAdminからSQLを入力できる状態で、

show variables like '%char%'

の結果を確認してみてください。

投稿日時 - 2009-07-04 22:03:14

お礼

ありがとうございます。
それに関しては試行済みで、問題もありません。
どうやらクライアントの文字コードがlatin1になっているのが原因で、これは変更できないようです。
set character setやset namesを使用するとSQLインジェクションに弱くなるので止めた方がいいらしいのですが、PHPのバージョンが古くてAPIでの変更はできず……困ったものです。

投稿日時 - 2009-07-05 12:14:22

あなたにオススメの質問