[PHP-users 11556] Re: ms-拡張領域の文字を phpからSQLserver(NT) へinsertしたい

Tatsuya Matsuyama php-users@php.gr.jp
Tue, 19 Nov 2002 08:40:17 +0900


松山です。
レスありがとうございます。

----- Original Message ----- 
From: "Moriyoshi Koizumi" <moriyoshi@at.wakwak.com>
Sent: Monday, November 18, 2002 5:17 PM
Subject: [PHP-users 11547] Re: ms-拡張領域の文字を phpからSQLserver(NT) へinsertしたい

> mbstring.http_input=pass
> 
> でどうでしょうか。
> 現状のものだと第三水準の一部は大丈夫なようですが、
> IBM / NEC 拡張領域の文字は正しく扱えないはずですので。

以下で試しましたが、古い徳の字(SJIS-win:FABA, unicode:5FB7)が
「@」になってしまう現象は、前メールの状況と同じでした。
# 受取ったpostデータをそのままクライアントに表示させて確認しています。
# IEの[表示]-[エンコード]は[自動選択-シフトjis]になっています。
# 一緒にくる他のpostデータの漢字は正常に表示されます。

■php.ini(#2)
mbstring.internal_encoding    = Shift-JIS
mbstring.http_input           = pass
mbstring.http_output          = SJIS-win
mbstring.detect_order         = auto
mbstring.substitute_character = pass
mbstring.script_encoding      = Shift-JIS


> mbstring.internal_encoding と mbstring.script_encoding は
> 同じにしないとあまり意味がありません。

そうですか。ありがとうございます。

phpで受けてSQLserverに入れるというのは
割と一般的な構成かと思います。
しかも、クライアントをWindowsに限定できるだけ
この手の「外字」問題のクリアも比較的簡単かと勝手に思っていましたが、
なかなか突破できません。

外字をDBに入れている方はあまりいらしゃらない?
だとすると、「外字」をphpでどのように判断すべきでしょうか?