[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>