【PHP】mb_convert_encoding()のautoは使うな。

もし使いたいなら下記のように指定すること。

$str = mb_convert_encoding($str, 'UTF-8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS,SJIS-WIN');

autoはphp.iniの言語設定によって展開される文字コードが変化するため、上記のような結果が確実に得られるという保証が無い。
そのため、上記を想定してautoを渡しても期待通りの結果にならない場合があるので、しっかりと指定したほうが無難である。

php.iniのmbstring.languageが「mbstring.language=Japanese」になっているか、前もって「mb_language(‘Japanese’)」を実行していれば問題は無い。