[PHP-users 11559] Re: ms-拡張領域の文字を phpからSQLserver(NT) へinsertしたい
Masaki Fujimoto
php-users@php.gr.jp
Tue, 19 Nov 2002 10:18:37 +0900
ふじもとです。
> mbstring.internal_encoding = Shift_JIS を、
> mbstring.internal_encoding = SJIS-win に変えてやる必要があります。
>
> ちょっとややこしいですが、
> 出力フィルタで、"Shift_JIS" => "SJIS-win" に変換しようとして、
> "Shift_JIS" にない文字があったので置換されてしまったのでしょう。
だと思います。加えてscript_encodingにもSJIS-winを指定したほうが良いはず
なのです、が、現在script_encodingにSJIS-win指定することができません。何
故かと言うと、僕がさぼっていたからです。すみません。
ので、とりあえずの回避策としては:
--enable-mbstr-enc-transをoffにして、
mbstring.internal_encoding = SJIS-win
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.detect_order = auto
mbstring.substitute_character = pass
mbstring.script_encoding = Shift-JIS
とすればPHP側としては問題なくなるかと思います(注:試してません)。http_i
nputのエンコーディング変換はmb_convert_variables()等を用いて手動で行う必
要がありますが。
script_encodingはShift-JISとなっていますが、スクリプトに外字を記述しても
問題ない実装になっているとおもいます。
--
藤本 真樹
fujimoto@studio.co.jp
fujimoto@php.net