• ベストアンサー

文字化けが発生する

MySQL4.1をデフォルト設定のまま使っています(UTF-8) phpMyAdminで、UTF-8の2バイト文字を登録し、参照するときちんと表示されるのですが、自分で作ったPHPスクリプトからデータを参照すると、「??????????」と完全に文字が壊れて表示されてしまいます。 PHPでは普通に $query = 'select * from table'; $result = mysql_query($query); while($row = mysql_fetch_array($result){ print_r($row); } とやっています。どこがおかしいのでしょうか?

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

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

PHP側も文字列をUTF-8で扱っていますか? EUC等、他の文字コードで表示しようとしているなら化けて当たり前です。 もしそうなら、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1515271 ↑のNo3の回答(私が回答したもの)を試してみてください。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1515271
vitadai
質問者

お礼

回答ありがとうございます。 うっかりでした。PHPの文字コードのことを忘れていました。ありがとうございます。

その他の回答 (1)

回答No.2

Etherskyさんが言うように、 ■原因1 PHPファイル自体の文字コードが、UTF-8以外になっている可能性があります。 これは、Dreamweaverの場合、Ctrl+J でファイルの文字コードを設定できます。他のソフトでも、ファイル自体の文字コード操作できるところがあるので探してみてください。 ■原因2 もう一つの可能性として、書き出すhtmlのmetaタグに記述されている、charsetが、間違っているというのがあります。 <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> などになっていると、データベースから読み込んでいるUTF-8の文字列は、文字化けしてしまいます。 なので、これが、 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> になっているか確認してみてください。

vitadai
質問者

お礼

回答ありがとうございます。 うっかりでした。PHPの文字コードのことを忘れていました。ありがとうございます。

関連するQ&A