げ。auto って決め打ちじゃないんだ

OSX 10.3.9 + PHP 4.3.11 の環境で

mb_convert_encoding( $str, mb_internal_encoding(), "auto" )

がうまく動かない。何かと思ったら OSX ではこの auto が

"ASCII,JIS,UTF-8,EUC-JP,SJIS"

に展開されず、

"ASCII,UTF-8"

になってしまう。なんじゃこりゃ。てことは明示的に

mb_detect_order()
mbstring.detect_order

とか使って "ASCII,JIS,UTF-8,EUC-JP,SJIS" をセットして auto じゃなくて detect_order を使うようにした方がいいのか。なんでこんなんなってんだ。

[2005-10-28 追記]

[PHP-users 25319] Re: mb_convert_encoding/mb_detect_encoding について

マニュアルの記述と挙動が一致してないらしい。mbstring.language を設定しとけと。なるへそ、チェック不足でした。

[2005-11-10 追記]

と思ったけど、4.3.11 ではエンコーディング判別の処理がバグっている模様。cf. [PHP-users 25298] mb_convert_encoding/mb_detect_encoding について どっちみち 10.3.9 ではダメか…。まぁ他のバージョンを使える環境はいくらでもあるが、どうも PHP ってこういうことが多いよな。

More