[PHP-users 21812]Re: mb_convert_encodingについて
komura
komura @ ma9.seikyou.ne.jp
2004年 5月 23日 (日) 14:10:16 JST
komura です。
On Sun, 23 May 2004 10:58:50 +0900
NISHIMURA Yutaka <tit4tat @ xpost.plala.or.jp> wrote:
> phpを4.2.2 国際化版から 4.3.6に変更した所、
> mb_convert_encodingにおいて、挙動がおかしいので困っております。
> http://www.php.net/manual/ja/function.mb-convert-encoding.php
> こちらのページには、
> > /* "auto" は、"ASCII,JIS,UTF-8,EUC-JP,SJIS" に展開される */
> > $str = mb_convert_encoding($str, "EUC-JP", "auto");
> と書いてありますが、4.3.6にバージョンアップしてからは
> Warning: mb_convert_encoding(): Unable to detect character encoding
> in /hoge.php on line foo
> と警告が発生し、文字化けします。
> そこで、autoはASCII〜SJISに展開されるとあるので
> $str = mb_convert_encoding($str,"EUC-JP","ASCII,JIS,UTF-8,EUC-JP,SJIS")
> としてやると問題なく動作するようです。
> autoで展開されるとありますが、されてないようです。
>
> ですが、"auto"と書かれたスクリプトを全て手動で展開しなおすのは
> 非現実的ですのでなんとかしたいのですが、
> 何とかする方法は有りませんでしょうか?
php.ini の mbstring.language には何か指定されていますでしょうか。
もし、コメントアウトされている場合は以下のように指定すれば、思い通りの
動作をすると思います。
mbstring.language = Japanese
php.ini を変更した場合は、Apache の再起動を忘れないで下さい。
または、PHP スクリプトの最初に
mb_language( 'Japanese' );
を入れるだけでも良いかもしれません。
--
komura <komura @ ma9.seikyou.ne.jp>
PHP-users メーリングリストの案内