[PHP-users 25319] Re: mb_convert_encoding/mb_detect_encoding について
komura
komura @ ma9.seikyou.ne.jp
2005年 4月 8日 (金) 02:30:10 JST
komura です。
On Thu, 07 Apr 2005 21:45:54 +0900
Yoichi Enomoto <enomoto @ jposting.co.jp> wrote:
> ソーススクリプトは,EUC-JP で記述しています.
>
> 'auto' の指定は 'ASCII,JIS,UTF-8,EUC-JP,SJIS' への展開と
> 認識しています.
マニュアルではそのように書かれていますが、最近の PHP(4.3.4 以降) では設定
によってはそのようにはならないようです。
http://jp2.php.net/manual/ja/function.mb-detect-order.php
の User Contributed Notes には説明がありますが、例えば、以下のように
mb_language() または、php.ini の mbstring.language の設定によって
"auto" を指定した時の内容が変化します。
特に、php.ini で mbstring.language を指定しない場合は uni と同じ扱いです
ので "auto" を使用する際には気を付けた方が良いと思います。
<?php
mb_language( 'uni' );
mb_detect_order( 'auto' );
print_r( mb_detect_order() );
mb_language( 'Japanese' );
mb_detect_order( 'auto' );
print_r( mb_detect_order() );
mb_language( 'Russian' );
mb_detect_order( 'auto' );
print_r( mb_detect_order() );
?>
実行結果(PHP 4.3.11)
----
Array
(
[0] => ASCII
[1] => UTF-8
)
Array
(
[0] => ASCII
[1] => JIS
[2] => UTF-8
[3] => EUC-JP
[4] => SJIS
)
Array
(
[0] => ASCII
[1] => UTF-8
[2] => KOI8-R
[3] => Windows-1251
[4] => CP866
)
--
komura <komura @ ma9.seikyou.ne.jp>
PHP-users メーリングリストの案内