[PHP-users 14408]Re: スクリプトの文字コードについて
桝形 誠二
s.masugata @ digicom.dnp.co.jp
2003年 4月 1日 (火) 21:02:44 JST
桝形です。
PHPのバージョンが抜けていました。
PHP4.3.2RC1です、失礼致しました。
> 当方の環境でも変な現象に出くわしました。
> どうも自動変換をしていない?
>
> System
>
> SunOS hogehuga 5.6 Generic_105181-23 sun4u
>
> Configure Command
>
> './configure' '--with-apxs=/usr/local/apache/bin/apxs' '--without-pear' '--disable-cgi' '--disable-cli' '--enable-zend-multibyte' '--enable-mbstring=all' '--enable-mbregex' '--with-mysql=/usr/local/mysql' '--with-pgsql=/usr/local/pgsql' '--enable-ftp' '--enable-sockets' '--enable-bcmath' '--enable-wddx' '--enable-versioning'
>
> Apache Version Apache/1.3.26
>
> mbstring
>
> Multibyte Support enabled
> Japanese support enabled
> Simplified chinese support enabled
> Traditional chinese support enabled
> Korean support enabled
> Russian support enabled
> Multibyte (japanese) regex support enabled
>
> Directive Local Value Master Value
> mbstring.detect_order auto auto
> mbstring.encoding_translation On On
> mbstring.func_overload 0 0
> mbstring.http_input auto auto
> mbstring.http_output SJIS SJIS
> mbstring.internal_encoding EUC-JP EUC-JP
> mbstring.language Japanese Japanese
> mbstring.script_encoding SJIS SJIS
> mbstring.substitute_character no value no value
>
>
> test-euc1.php( EUCで記述 ):
> <?
> echo "あいうえおかきくけこさしすせそ";
> //phpinfo( );
> ?>
>
> [[ OK!! ]]
>
> これは期待しない動作。なぜ???
>
> test-euc2.php( EUCで記述 ):
> <?
> declare( encoding="EUC-JP" );
> echo "あいうえおかきくけこさしすせそ";
> //phpinfo( );
> ?>
>
> [[ OK!! ]]
>
> これは期待通り。
>
> test-sjis1.php( SJISで記述 ):
> <?
> //@mb_internal_encoding( "SJIS" );
> echo "あいうえおかきくけこさしすせそ";
> //phpinfo( );
> ?>
>
> [[ NG!! ]]
>
> これは期待しない動作。
>
> test-sjis2.php( SJISで記述 ):
> <?
> declare( encoding="SJIS" );
> //@mb_internal_encoding( "SJIS" );
> echo "あいうえおかきくけこさしすせそ";
> //phpinfo( );
> ?>
>
> [[ NG!! ]]
>
> これも期待しない動作。
>
> test-sjis1.phpと、test-sjis2.phpはコメントアウトにしている
> 部分を有効にすると、
>
> mb_internal_encoding( "SJIS" )
>
> なんとか動作しました。
>
> という訳で、internal_encodingが効いていないからか?なのかな
> と思いました。
>
> 後、軽く入力の自動変換の部分を調べてみたのですが、確かに
> 変な動作で期待した動作にまったくなりません。これは非常に
> 厳しいですねぇ。
>
> ちなみに、同じバージョンのPHPで、
>
> OS :RedHat Linux6.2J
> Apache:1.3.27
>
> では問題ありませんでした、phpinfoのmbstring関連の結果は同様です。
>
> test-euc1.php( EUCで記述 ):
> <?
> echo "あいうえおかきくけこさしすせそ";
> //phpinfo( );
> ?>
>
> [[ NG!! ]]
>
> これは期待通り。
>
> test-euc2.php( EUCで記述 ):
> <?
> declare( encoding="EUC-JP" );
> echo "あいうえおかきくけこさしすせそ";
> //phpinfo( );
> ?>
>
> [[ OK!! ]]
>
> これも期待通り。
>
> test-sjis1.php( SJISで記述 ):
> <?
> //@mb_internal_encoding( "SJIS" );
> echo "あいうえおかきくけこさしすせそ";
> //phpinfo( );
> ?>
>
> [[ OK!! ]]
>
> これも期待通り。
>
> test-sjis2.php( SJISで記述 ):
> <?
> declare( encoding="SJIS" );
> //@mb_internal_encoding( "SJIS" );
> echo "あいうえおかきくけこさしすせそ";
> //phpinfo( );
> ?>
>
> [[ OK!! ]]
>
> これも期待通り。
>
> 入力の自動変換の部分も特に問題なく使用できています。
_______________________
桝形 誠二( Masugata Seiji )
E-Mail : s.masugata @ digicom.dnp.co.jp
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
PHP-users メーリングリストの案内