[PHP-users 17961]Re: configureコマンドが見当たりません

Masashi Ohba ohba @ imr.tohoku.ac.jp
2003年 9月 18日 (木) 15:16:29 JST


大場です。

#すでに内容がconfigureとは遠くなってますが

In message "[PHP-users 17955] Re: configureコマンドが見当たりません",
Nagasue wrote,

>ブラウザには、Sift-JISで出したいし、PostgreSQLやPHPではEUCを推奨、
>ということで、ブラウザからの入力文字はShift-JISであることが予想されます。

ブラウザにSJIS出したいなら「mbstring.http_output = SJIS」でしょう。
それに、確か規定されてませんよね?>ブラウザから来る文字コードが何か
なので、SJISで受け取ったhtmlに対してEUCやJISで返してくるような
ブラウザがあっても、変な挙動とはいえなかったと思います。

>コード変換しなくても、良い方法がある、ということでしょうか?

たいていはPHPが処理してくれるんじゃないんですか?
まぁ、文字が少なくてEUCとSJISのどっちにも含まれる
文字だけの場合は判断基準はないわけですから
おかしなことが起きる可能性はあるでしょうけど。
赤マンモス本にもそう書いてますし。

mbstring.http_input とか mbstring.detect_orderとかが
そのためのphp.iniで設定できるパラメータだと思ってましたが

で、おそらくかなりの方が

PHPのスクリプトはEUCで書く
SJISでブラウザに出力する
PostgreSQLはEUCにしておく
内部コードはEUCにしておく

という設定(UTF-8必須な場合もあるかな?)で、たいていの場合に
特に問題なくデータの出し入れができていると思うのですが、
世間一般での設定からずらす場合はそれなりの理由があるわけでしょうし
このような設定ではダメな理由と、何がどう変な動きをするのかを
知りたいのですが。

たまに目にするのが、SJISスクリプトが使えない状態のPHPで
「携帯のコンテンツはSJISだからスクリプトもSJISの”はず”だ」みたいな
自分の頭の中だけの思い込みで設定を変えたのが原因だったりとかも
ありえますし。

それと、一般的にはunix系OSの上でMS社由来のSJISを使って
幸せになれるとはあんまり思えないので

[PHP-users 17931]に書いてある
>output_buffering = On
>output_handler = mb_output_handler
>default_charset = Shift_JIS
>mbstring.language = Japanese
>mbstring.encoding_translation = On
>mbstriong.http_input = auto
>mbstring.http_output = SJIS
>mbstring.internal_encoding = SJIS
>mbstring.substitute_character = long

の「mbstring.internal_encoding = SJIS」ってのは
いかがなものか…という気がしないでもないですが…

------------------------------------------------
Name: 大場正志(Masashi Ohba)
E-mail: ohba @ imr.tohoku.ac.jp
東北大学 金属材料研究所


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