[PHP-dev 31] Re: ZendのSJIS 対応パッチを作ってみました

Masaki Fujimoto php-dev@php.gr.jp
Wed, 04 Jul 2001 19:15:21 +0900


ふじもとです。

On Wed, 04 Jul 2001 18:27:11 +0900
Hiro Yoshioka <hyoshiok@miraclelinux.com> wrote:

-snip-

> 
> ところで、エンコーディングに依存した処理は
> php-3.Xでは、どーやっていたかとコードを見ると、
> どーも、i18n_script_input_new() とかで
> script_encodingからinternal_encodingへ変換して
> その後にparseしている感じですね。

僕はPHP4が出てからPHPを使い始めた人なので、ついこの間までphp3の国際化版
を使ったことがありませんでした。
で、今日始めてソースを見たのですが、非常によくできていると思いました。国
際化チームの方、尊敬です。

それでZendの国際化なのですが、先程のパッチは「Zend社がZend Engineの国際
化をしてくれるまでとりあえず」といったニュアンスで作り始めてしまったので、
きわめていいかげんなものだったりします。すみません。

どうやら本格的に対応してみよかな、という感じもしてきたので「SJIS対応」で
はなくて「国際化」を念頭において対策を考え中です。国際化版php3やmbstring
モジュールのソースは非常に参考になりますね。

基本的には、

(1) encoding "文字コード";
    でスクリプトエンコーディングを指定して、

(2) 指定されたエンコーディングが特殊な字句解析を必要とするものかどうかを
判別し、

(3) (2)の結果にしたがって字句解析

という感じでしょうか。今回はエンジン内部でのエンコーディング変換はとりあ
えず考えていません(将来的には行うにしても)。

# encodingディレクティブを試しにつけてみました。構造上、変数をつかえない
のが痛いところですね

--
Masaki Fujimoto
fujimoto@studio.co.jp
http://www.studio-m.com/