SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【php】mb_convert_encoding()関数で、変換元の文字コード(第3引数)を指定しているのにWarningが出る

こうしたとき、

mb_convert_encoding($str, 'UTF-8', 'SJIS,EUC-JP');

$str が SJISでもEUC-JPでもなかったとき、Warningが出ます。

Warning: mb_convert_encoding(): Unable to detect character encoding in /xxxx/xxxx/test.php on line 2

変換元の文字コード(第3引数)を指定したとき、1つ指定すればその指示通りに強行しますが、カンマ区切りで複数指定すると、’auto’の指定と同様に文字コード判定が発生し、候補の中で解決できないときはWarningが発生します。

このように1つだけ指定したときは、指定に従って無理やりにでも文字コードを変換するだけで特にエラー、警告は発生しません。

mb_convert_encoding('你好', 'UTF-8', 'SJIS-win');//ソースがUTF-8だとして、UTF-8の文字列をSJISからUTF-8へ変換しようとしたとき

関連するメモ

コメント