• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:突然の文字化けで困っています (UTF-8→???))

突然の文字化けで困っています

このQ&Aのポイント
  • 下記の文字列が意味不明な文字コードに変換されてDBに格納されてしまい困っています。調べたところSJIS,EUCではありませんでした。
  • パラメータでcharsetにutf8を設定しています。
  • 何か同じような現象を体験された方がいましたらご教授ください。足りない情報があれば補足欄へ再度投稿します。

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

  • ベストアンサー
  • noocyte
  • ベストアンサー率58% (171/291)
回答No.1

"山田 太郎" (UTF-8) という文字列を,MySQL 側は Windows-1252 (ISO-8859-1 の拡張版) だと思っているようですね. "山田 太郎" (UTF-8) を16進表示すると, 0xE5 0xB1 0xB1 0xE7 0x94 0xB0 0xE3 0x80 0x80 0xE5 0xA4 0xAA 0xE9 0x83 0x8E これを Windows-1252 の文字列と見なして文字または実体参照に変換すると, 0xE5 å 0xB1 ± 0xB1 ± 0xE7 ç 0x94 → U+201D (”) 0xB0 ° 0xE3 ã 0x80 → U+20AC (EURO SIGN) 0x80 → U+20AC (EURO SIGN) 0xE5 å 0xA4 ¤ 0xAA ª 0xE9 é 0x83 → U+0192 (LATIN SMALL LETTER F WITH HOOK) 0x8E → U+017D (LATIN CAPITAL LETTER Z WITH CARON) となります. MySQL は使ったことがないのでわかりませんが,MySQL の設定または MySQL 前後の処理で Windows-1252 (あるいは ISO-8859-1 と書かれているかも) を設定している部分がないか確認してください. Windows コードページ 1252 http://www.microsoft.com/globaldev/reference/sbcs/1252.mspx ISO-8859-1 の文字コードと実体参照 (Wikipedia) http://ja.wikipedia.org/wiki/Wikipedia:%E7%89%B9%E6%AE%8A%E8%A8%98%E5%8F%B7 ISO-8859-1 (Wikipedia) http://en.wikipedia.org/wiki/ISO-8859-1#ISO-8859-1

ton_jiru
質問者

お礼

大変丁寧な回答ありがとうございます。 設定も全部見直し、MySqlもPhp再インストールしましたが解決しませんでした。 ソースの修正とテストが大変ですが、ライブラリをPearからAdoへ変更することで文字化けを解消しました。

すると、全ての回答が全文表示されます。

関連するQ&A