- 締切済み
MySQL+PHP文字化け
PHPからMySQLを使っています。 MySQLもPHPも文字コードはutf8を使っているのですが、PHPMyAdminから入力した日本語を普通に読み出すと文字化けして「??????」になってしまいます。また、自作コードからの日本語のinsertもできません。 しかし、「set character set utf8」を先に実行しておくといずれも上手くいきます。 これは一体どういうことなのでしょうか? そもそも全てutf8で統一しているつもりなのですが、MySQLかクライアントのどちらかで他のコードが使われているということなのでしょうか? MySQLはstatusなどを見てもutf8になっているので、どちらかと言えばクライアントの方が臭うのですが、よくわかりません。 どうか知恵をおかしください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答No.1
phpMyAdminの文字コードの設定が、適切に行われていないのでは? phpMyAdminからSQLを入力できる状態で、 show variables like '%char%' の結果を確認してみてください。
お礼
ありがとうございます。 それに関しては試行済みで、問題もありません。 どうやらクライアントの文字コードがlatin1になっているのが原因で、これは変更できないようです。 set character setやset namesを使用するとSQLインジェクションに弱くなるので止めた方がいいらしいのですが、PHPのバージョンが古くてAPIでの変更はできず……困ったものです。