mb_convert_encodingでエラーが出て文字化けして使えない。

  • 投稿
  • 編集

PHPで$strに入っているシフトJIS以外の日本語を変換するために

$str = mb_convert_encoding($str, "SJIS", "auto");
echo $str;

と記載してページを表示すると

Warning: mb_convert_encoding() [function.mb-convert-encoding]: Unable to detect character encoding in /home/***/public_html/***.php on line ***

とエラーが出て文字化けしました。

phpinfo()で仕様を見てもmbstringの欄はenableと有効になっているのに正常に表示できませんでしたが、以下を参考にmb_language( 'Japanese' );を加えたら正常に変換され表示ができました。

mb_language( 'Japanese' );
$str = mb_convert_encoding($str, "SJIS", "auto");
echo $str;

次からは必ずmb_language( 'Japanese' );をmb_convert_encodingとセットで使おうと思います。