• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQL(UTF-8)で ~ が文字化けしてしまう)

MySQLで文字化け問題が発生する原因と対策

このQ&Aのポイント
  • MySQL(UTF-8)で特定の文字が文字化けしてしまう問題が発生しています。Apache 2059、PHP 5.1.6、MySQL 5.0.24a、WindowsXP SP2の環境で起きており、UTF-8で設定されていることが分かります。
  • 問題発生時には「あ~あ」という文字列が「あ?あ」と表示されます。文字化けの原因としてはMySQL側の設定が考えられますが、具体的な対策は不明です。
  • MySQL Query Browzerからの実行でも同様の問題が発生することが確認されています。情報をお持ちの方はお知らせください。

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

  • ベストアンサー
  • fxdwg99
  • ベストアンサー率45% (43/94)
回答No.1

~は結構鬼門で、UTF8では2つのコードが割り当てられています。 「~(U+FF5E)」と「~(これが上下反転した形状)(U+301C)」です。 SJISからUTF8に変換すると後者に割り当てられるようで、UTF8を SJISに変換すると?になってしまう、という現象があったと覚えています。 そのときの回避策は出力時にバイナリ置換してU+301CをU+FF5Eに しました。

SHlVA
質問者

お礼

回答ありがとうございます。 なるほど、なかなか一筋縄にはいかないものなんですね。 いろいろ試してみて、あるテーブルのみで起こっていたので、なぜかなと悩んでいたのですが、エクスポートで、create table文を出力してみると、なぜか一部のカラムのみ文字コードが ujis として記録されていたようでした。 自分では設定したつもりも記憶もなかったので気づきませんでした。基本はデータベース単位でのみ文字コードを決めており、テーブル単位でも文字コードを設定できることは知っていましたが、カラム単位でまでできるとは知りませんでした。 そのカラムに設定されていた文字コード指定を削除したところ、直りました。 文字コードに関しては、よく問題になってしまいますが、勉強になりました。ありがとうございました。

関連するQ&A

専門家に質問してみよう