[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 メーリングリストの案内