[PHP-dev 819]Re: zend-multibyteサポートの危機?

Masaki Fujimoto fujimoto @ tunebiz.net
2003年 6月 25日 (水) 12:31:41 JST


ふじもとです。

-snip-
> > # script_encoding=internal_encodingだと
> > # script_encoding=autoの時
> > # SJIS/EUCごちゃまぜのソースの時困ります。
> 
> 無用な問題を避ける為にもソース/DBのエンコーディングは統一
> するべきと考えています。経験豊かな方はそうしているので、
> それに習った方が良いと思います。

おそらくあさかわさんは、大垣さんのおっしゃっている「したほうが良い」と
いうことをお分かりになった上で、なお「実務レベル」(?)では、たとえば
ソースコードがShift_JIS/EUC-JPで書かれているという事態が往々にして発生
してしまうので、こういった状態をPHP側で吸収してくれるとうれしい、とい
うことをおっしゃっているのかな、と思います。

ここまでくるとポリシーの問題になりますが、僕としてはこれ以上PHPが「勝
手に(== implicitに)いろいろしてくれる」機能は追加すべきではない、と
思っています(現状でも有り過ぎ、というか)。

たとえば、ファイルの入出力エンコーディングに関しては、(それがユーザ定
義になるか、システムから提供されるかはまだ分かりませんが)ストリームを
用いて抽象化するところかと思います。データベースに関しても同様で、これ
はデータベース側のエンコーディング変換機能を利用するか、データベース抽
象化クラス側で対処するのが自然に思えます。さすがにこれらをPHP側で、
(http_input/output変換のように)組み込まれた仕組みとして提供するのは
ちょっと行き過ぎかな、と思うのですがいかがでしょうか?

# multipartの変換は...どうでしょう?この辺はZend Engineから離れるので
# 今回の議論ではパス、ということで他の方に譲ります(笑)

> script_encodingにautoはサポートするべきでは無いと思います。
> # XMLの様にファイルの先頭にエンコーディングを記述するように
> # 約束事が必要になります。

これについては僕も迷うところです。autoが無いほうが、設計も実装も綺麗に
なるし理解しやすいのは確実ですが、autoが役立つ場面がまだまだあるのも確
かなので。

この辺とそれに付随する項目としては:

(1) script_encoding=autoをサポートするか?
(2) script_encoding->internal_encodingをサポートするか?
(3) (2)をサポートする場合、そのon/offはencoding_translationで指定すべ
    きか?(前に話題になりましたね...)

等でしょうか。

あんまり何も考えずに書いているので、まだまだいろいろありそうですが、と
りあえず...

-- 
Masaki Fujimoto
fujimoto @ tunebiz.net


PHP-dev メーリングリストの案内