[PHP-users 4757] Re: sjis で echo ”能”
Rui Hirokawa
php-users@php.gr.jp
Wed, 16 Jan 2002 23:36:12 +0900
廣川@php-devネタ?です。
PHP3-i18n では、script_encodingとinternal_encodingが分かれていたために
両者の意味づけは明確でした。PHP4では現状では、script_encodingに相当する
機能がないために両者の境界は不明確なのかもしれません。
内部エンコーディングについては、本来ならば、吉岡さんがご指摘になったよう
に実装に関係する仕様であり、一般ユーザに正しく設定することを要求すると
いうのはやや酷かもしれません。
内部エンコーディングに関しては、マルチバイト処理を含めた処理効率を考えると
Java等と同様にUCS-2/UCS-4等のワイドキャラクターとするのが理想的でしょう。
ただ、現状でマルチバイトに関するニーズはPHPコミュニティの中で少数派であり、
書き直すべきコードがかなりの規模になることから受けいれられるかどうかは
未知数です。
ワイドキャラクター化やUnicodeのサポート等の国際化機能のサポートについては、
ZendEngine2に向けて作業中の現状がとりこんでもらうチャンスなのですが、
なかなか手が回りません。
(そろそろ、RFCを書きはじめなくてはと思っていますが。。。)
では、現状でバイトストリームの中からinternal_encodingとして何を選択するかと
いうと、やはりEUC-JPかUTF-8でしょう。
XMLとの親和性を考えるとUTF-8ですが、やや古い処理系ではまだサポートが不完全
ということもあるかもしれません。
script_encodingからinternal_encodingの変換がサポートされれば、
スクリプトの作成環境のエンコーディングと内部エンコーディングを
一緒にしなくても不便ではなくなるので便利となるでしょう。
そして、この変換機能がサポートされた時点で、internal_encodingは
固定とするかconfigureのオプションでPHPの構築時に変更できる程度に
留めておくというのが現実的な解となると思います。
On Wed, 16 Jan 2002 13:31:04 +0900
KOYAMA Tetsuji <koyama@hoge.org> wrote:
>
> 小山です。
>
> At Wed, 16 Jan 2002 09:52:33 +0900,
> Hiro Yoshioka wrote:
> > 利用者から見ると、
> >
> > http_input
> > http_output
> > script_encoding
> >
> > あたりを指定しなければいけないというのは
> > わかり易いのですが、internal_encoding
> > というのはあくまで実装の都合であって、
> > 利用者にとってはなんの意味もない内部情報
> > だと思うのですよ。
>
> なるほど。よしおかさんが何をおっしゃりたいのかようやく理解できました。
> 現在の mbstring では、まさに上記の script_encoding の意味で
> internal_encoding という単語を使っていると私は理解しています。ふじもと
> さんのパッチでその意味境界がくずれつつありますが、そもそもの意味合い的
> には、内部情報が隠蔽されずに外部に出ているという印象はありません。
>
--
-----------------------------------------------------
Rui Hirokawa <rui_hirokawa@ybb.ne.jp>
<hirokawa@php.net>