- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mysql utf8、php・euc-jp で出力すると、[~]が文字化けする)
mysql utf8、php・euc-jp で出力すると、[~]が文字化けする
このQ&Aのポイント
- mysqlの文字コードはutf8なのですが、phpはeucで出力しています。DBに格納されている文字は文字化けせずに、きちんと表示されているのですが、出力すると「~」が「?」に化けて表示されてしまいます。
- mysqlの文字コードはutf8ですが、phpはeuc-jpで出力すると、「~」が「?」に化けて表示されます。
- DBに格納されている文字は文字化けせずに表示されているのですが、phpで出力すると「~」が「?」に化けてしまいます。回避方法をご教授ください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
処理系にWindowsが混入してるとそういう現象が起こるらしいですね。 Windowsが波ダッシュと全角チルダを混同してることと、euc-jpには全角 チルダなんて無いことが諸悪の根源とか。 > DBに格納されている文字は文字化けせずに、 UNICODE対応環境で見ても区別付きませんよ。見た目一緒だから。 どこかで全角チルダを波ダッシュに変換してやる必要があるわけですが、 適切な場所でeuc-jpのかわりにeuc-jp-winと唱えるのが効くって噂です。
その他の回答 (1)
- asuncion
- ベストアンサー率33% (2127/6289)
回答No.1
> mysql_query(”SETNAMES ujis″); SET と NAMES の間に空白が必要だと思います。 空白を入れて文字化けしなくなるかどうかは、わかりません。
質問者
お礼
> SET と NAMES の間に空白が必要だと思います。 > mysql_query(”SETNAMES ujis″); すみません。上記は他のサイトから持ってきたので、 私の記述は間違っておりません。
お礼
>処理系にWindowsが混入してるとそういう現象が起こるらしいですね。 >Windowsが波ダッシュと全角チルダを混同してることと、euc-jpには全角 >チルダなんて無いことが諸悪の根源とか。 そうなんですか、とても勉強になります! >UNICODE対応環境で見ても区別付きませんよ。見た目一緒だから。 そうなんですね…無知でお恥ずかしいです…。 >どこかで全角チルダを波ダッシュに変換してやる必要があるわけですが、 >適切な場所でeuc-jpのかわりにeuc-jp-winと唱えるのが効くって噂です。 ありがとうございます。参考URLのサイト、とても参考になりました。 SET NAMES eucjpms にしたら文字化けせずに表示されました!! ずっと悩んでたので本当に大感謝です。 ありがとうございました!