[PHP-users 11585] Re: ms-拡張領域の文字を phpからSQLserver(NT) へinsertしたい
Tatsuya Matsuyama
php-users@php.gr.jp
Tue, 19 Nov 2002 14:36:51 +0900
松山です。
レスありがとうございます。
希望の動作を実現できました。
----- Original Message -----
From: "Masaki Fujimoto" <fujimoto@studio.co.jp>
Sent: Tuesday, November 19, 2002 10:18 AM
Subject: [PHP-users 11559] Re: ms-拡張領域の文字を phpからSQLserver(NT) へinsertしたい
> --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()等を用いて手動で行う必
> 要がありますが。
make distclean後再度、
以下のようにphp-4.2.3-multibyte.tar.gzを--enable-mbstr-enc-transをoffでmakeしてみました。
./configure
--with-apxs=/usr/sbin/apxs
--with-pam_auth
--enable-zend-multibyte
--enable-mbstring
--with-sybase=/usr/local/freetds
--without-mysql
--enable-mbregex
そして、最終的に下記のようなphp.iniとしたところ、
希望の動作を実現できました。
mbstring.http_output = pass とすると、
(私の環境では)クライアントで表示された時、全てが文字化けしています。
[自動検出]-[シフトJIS]にチェックは入っていますが、化けます。
手で[日本語(自動選択)]にすると正常に表示されます。
php側でheader()関数で指定すべきなのかもしれませんが、
(テスト用に)表示させているページには全てテンプレート用htmlファイルがあり、
それらにはheadタグが書かれているので不要かとは思います。
私には、原因はよく分かりません。
どうもありがとうございまいした。
■php.ini#3
mbstring.internal_encoding = SJIS-win
mbstring.http_input = pass
mbstring.http_output = SJIS-win
mbstring.detect_order = auto
mbstring.substitute_character = pass
mbstring.script_encoding = Shift-JIS