またPHP標準の関数以外に文字コード検出&変換に優れたライブラリなどがございましたら、教えてください。
変換元をauto指定にすると、原理的に誤判定する可能性があります。変換元は明示的に指定(SJIS, EUC-JP, UTF-8等々)した方が良いです。
過去には、変換元と変換先を明示指定しても、うまく変換しないバグがありました。これはmbstringのバグによるもので、詳細は「mb_convert_encoding/mb_detect_encoding について」をご覧ください。
このときに頻繁にバグ退治がなされたので、いまは大丈夫だと思います。
私はSJIS⇒UTF-8変換を頻繁に使っているのですが、PHP 4.4.4/5.2.4 では失敗したことはありません。
他の変換ライブラリもあると思いますが、移植性・継続性を考えると、純正のmbstringを使った方がいいと思います。
文字コード検出には完璧なものはありません。
問題が起きないようにするには基本的に自動認識は出来るだけ使わず文字コードを明示的に指定するべきです。
質問のケースですと、HTMLの文字コードをEUCにするということのようなのでContent-Typeヘッダやmetaタグからcharsetを取得してそれを使い文字コード変換を行うのが筋かと思います。
なるほど。大変ですが参考にさせてもらいます。
ありがとうございます。
参考になりました。!