[PHP-users 2129] 日本語のエンコードに関して。

竹本 靖 php-users@php.gr.jp
Tue, 18 Sep 2001 10:42:28 +0900


竹本@大阪です。

PHP3-3.0.15-i18n-ja でのスクリプトで日本語を扱っているのですが
次のような認識でよいのでしょうか?

ブラウザ未使用

http(in)    文字コード(不明)を送信
apache+php3  文字をEUC-JPに変換
http(out)    文字コード(SJIS)に変換して送信

ブラウザ使用

http(in)    ブラウザが文字コード(SJIS)に変換して送信
apache+php3  文字をEUC-JPに変換
http(out)    文字コード(SJIS)に変換して送信

ブラウザから変数を受け取った時は正しくエンコードされる。
ブラウザ以外から変数を受け取った時は入力がSJISと認識されて
エンコードされる。

よって
enc_data = i18n_convert(in_data,'EUC-JP') 
とすれば正しく処理できる。

これで正しいのでしょうか?

php コンパイルオプション

./configure \
--with-mysql=/usr/local/mysql \
--with-apxs=/usr/local/apache/bin/apxs \
--enable-track-vars --enable-i18n --enable-mbregex 


php3.ini の内容(抜粋)

; internationalization
i18n.http_output = SJIS
i18n.internal_encoding = EUC-JP
i18n.script_encoding = auto
i18n.http_input = auto
i18n.http_input_default = SJIS