[PHP-users 11512] Re: SQL(SJIS)上の「昇」がphp(EUC)で表示できない
Tatsuya Matsuyama
php-users@php.gr.jp
Fri, 15 Nov 2002 12:01:51 +0900
松山です。
----- Original Message -----
From: "Tatsuya Matsuyama" <tatsuya@kk-okamoto.jp>
Sent: Wednesday, October 30, 2002 9:13 AM
Subject: [PHP-users 11168] Re: SQL(SJIS )上の「昇」がphp(EUC) で表示できない
>
> ありがとうございます。最終的に
> 一度、SJISに統一してテストしてみたいと思っています。
SQLserver7.0(NT4.0SP6a) <--> RedHat7.3J + php-4.2.3-multibyte.tar.gz
でphp.iniを下記のように設定して
SJIS統一環境をテストしています。
# クライアントは全てwindowsを想定しています。
phpファイルを含む全てのWebコンテンツをSJISとし
mb_convert_encoding等を通さなければ
「昇」(sjis-code:8fb8)が表示されることを確認しました。
# php-4.2.1でも同じ設定なら表示されると思います。(未確認)
# また、逆に、この設定でSQLserverから(sjis-winで)きたデータを
# mb_convert_encoding($data->first_name_j, "SJIS", "auto")
# や
# mb_convert_encoding($data->first_name_j, "SJIS-win", "auto")
# としてしまうと、結果が無くなる(=""となり表示できない)ことも確認しました。
以上から
SQLserver->phpに関しては、素通し(?)して表示する方法で対応は可能と思っています。
質問は、
php->SQLserverへデータを格納する方法です。
hidden等も兼用して
phpが受取った段階でsjisを想定し
かつ
mbstring.http_output = Shift_JISに期待してpostで受取ったデータを
何もしない(mb_convert_encodingを使わない)でinsertしようと思っていますが、
このような方法で注意すべきことなどはあるでしょうか?
# 最終目標は、クライアントから
# (株)や古い漢字なども正常に処理できる機構です。
また、php.iniは
SJIS-winとする方がベーターでしょうか?
よろしくお願いします。
■php.ini抜粋
magic_quotes_gpc = Off
mbstring.internal_encoding = Shift_JIS
mbstring.http_input = auto
mbstring.http_output = Shift_JIS
mbstring.detect_order = auto
mbstring.substitute_character = pass
mbstring.script_encoding = Shift_JIS