- ベストアンサー
文字化けに関する対処方法とは?
- 文字化けが起きてしまって困っています。PHPとMysqlを使用した、CMSを新しいサーバに移すと文字化けをしてしまいます。
- データベースから読み込んでいる部分だけが文字化けしています。ブラウザのエンコードをUTF8にするとデータベースの部分が正確に表示され、HTMLに直接書き込んだ部分が文字化けします。
- 対応策として、index.phpのmetaタグをUTF-8に変更し、php.iniのmbstringの設定を確認する必要があります。詳しい方に相談してください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
私がいつも文字化け対策に使う方法を記載しておきます。 但しこれは、UTF-8で出力する方法ですので・・・。 ----------------------------------------------------------------------- ▼MySQLの照合順序を「 utf8_unicode_ci 」に統一。 ▼index.phpのcharsetを「 UTF-8 」にする。 ▼index.phpを保存する際に、エンコードの種類を「 Unicode UTF-8 」にして、「 BOM無し 」で保存して、ダメなら「 BOM有り 」の両方を試してみてください。 ▼クエリを発行する前に「 mysql_query("set names utf8"); 」又は、「 mysql_query("set names utf-8"); 」の一文を追加してください。 (set namesは脆弱性があるとの情報がありますので、出来れば使わないほうが良いようですが、最悪ダメなら試す価値はあるかと思います。) ----------------------------------------------------------------------- これでも正常に表示されないようであれば、サーバのスペック等を詳しく調べないといけないと思いますので、レンサバであればサーバ管理会社へ問い合わせてみるのが良いかと思います。 ただ、上手く質問しないと「技術的な質問にはお答え出来ません。」という提携文で回答される可能性がありますので、ご注意を。。。
その他の回答 (2)
- honoka-cha
- ベストアンサー率54% (40/73)
全部utf-8に統一したらいいんじゃないでしょうか。 つまり、mysqlはもうutf-8になっているみたいなのでそのまま。 index.phpをutf-8に変換。具体的には、 (1)index.phpをテキストエディタで開いて meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"で Shift_JISをutf-8に変更 (2)テキストエディタで保存するとき、文字コードutf-8を選択して保存。終了。
- duron
- ベストアンサー率77% (73/94)
文字化けの見た目的にはUTF-8のデータをShift_JISで表示しているタイプかと思います。 以前の環境と今回の環境が同じなのかどうかわかりませんが 画面出力の際にUTF-8からShift_JISに変換してみてください。
お礼
ありがとうございます。 おかげさまで無事解決しました。