[Tep-j-general] Re: PHP-4.3 でのmb_substr() の挙動

アーカイブの一覧に戻る

TAMURA Toshihiko tamur****@bitsc*****
2003年 2月 25日 (火) 09:40:41 JST


こんにちは、田村です。

後藤さん:
> >20021230版の日本語バージョンでは、mb_substr() で、第2引数までしか使わ
> >れていませんが、当方の環境(PHP-4.3.0 & ZendOptimizer)では、第3引数に、
> >EUC-JPを指定しないと正常に処理を行なってくれないようです。PHP-4.2.3 &
> >APCの環境では問題無く処理してくれます。
> 
> これって単に、mbstringの内部エンコーディングのデフォルトが変わっただ
> けなんじゃないでしょうか?

そうなんでしょうね。
PHPの最近のバージョンでは、内部エンコーディングに
SJISも使えるみたいですね。
今後は、異なった内部エンコーディングのアプリケーションが
サーバの中で混在する場面も出てくるのかもしれません。

内部エンコーディングは、php.ini か、.htaccess か、
どこかのレベルでを指定する必要はあるんですが、
osCommerceはEUC-JPを使うことになりますから、
無用なトラブルを避けるには、次のどちらかで指定してしまうのが
いいと思うんです。

  o mb_internal_encoding() で一括して指定する
  o 個々のmbstring関数で指定する

それで、(どちらでもいいようなものなんですが)

  o mbstring関数の有無を判別をする箇所で、
    mb_internal_encoding() で内部エンコーディングを指定する。
  o 個々のmbstring関数では内部エンコーディングを指定しない。

ということではどうでしょうか。 > 田邉さん

# この方が指定が徹底できると思いますので。

--
田村敏彦 / 株式会社ビットスコープ
E-mail:tamur****@bitsc*****
http://www.bitscope.co.jp/




Tep-j-general メーリングリストの案内
アーカイブの一覧に戻る