• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPの文字コード変換について)

PHPの文字コード変換について

このQ&Aのポイント
  • PHPで文字コード変換を行う際、mb_convert_encodingを使用することが一般的です。しかし、特定の文字コードへの変換がうまくいかない場合があります。
  • 例えば、UTF-8で記述されたPHPファイルの文字列をEUC-JPへ変換すると、文字化けが発生します。また、UTF-8からSHIFT-JISへの変換もうまくいかず、ブラウザで文字化けしてしまいます。
  • これは、mb_convert_encodingの第二引数で指定する変換先の文字コードが正しく設定されていないためです。変換元の文字エンコーディングに合わせて変換先の文字コードを指定する必要があります。正しい変換先の文字コードを指定することで、文字コード変換が正常に行われるはずです。

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

  • ベストアンサー
  • hymat
  • ベストアンサー率58% (95/162)
回答No.1

元のPHPファイルがUTF-8で、UTF-8→UTF-8の場合はなんら変換されないのはご記載のとおりですが、SJIS→SJISの場合でも、SJISとは判定されない文字(UTF-8で書いてあるんですから)については変換の対象外と判定されて、元のUTF-8のままで出力されたものと思います。 EUC-JPの場合は、たまたまEUC-JPとも解釈できる文字だったので、実はUTF-8であるにもかかわらずEUC-JPと見なされて、それがEUC-JPで出力され、文字化けになったものでしょう。