[PHP-users 33238] Re: PHP5+MSSQLSERVER2005での中国語の取得について

kanonbell kanonbell.sky @ gmail.com
2008年 2月 6日 (水) 21:52:03 JST


こんばんは。

> 以前に標記タイトルでお力をお借りして解決したのですが、
> kanonbellさまにお教えいただいた方法で試してみたところ、
> うまく中国語が抽出できませんでした。

あんれ〜?
と思ったら

> $db = &ADONewConnection("ado_mssql");
> $db->charpage = 65001; // UTF-8

正解はこちらでした。
$db->charPage = 65001;
Pは大文字です。私が間違ってますね。
会社で確認して、メールは家で出してるので。。。ごめんなさい。
(ちなみに公式マニュアルも間違って記述しています)

CP_UTF8って定数はPHP自体が持っているので、
$db->charPage = CP_UTF8;
でも可能です。

Driversフォルダにドライバ(ラッパー)の本体があるので、そちらを見ると
どういう実装になってるか分かるので、軽く目を通しておくと良いかもしれ
ません。
ADOdbは結構使いやすいですが、クォート処理など一部安全ではないと
思われる処理も見受けられるのでご注意の程を。

Prepared Statement使うなら、ADOのパラメータコレクションにきちんと
値渡した(エミュレーションではない)ちゃんとした実装になっているので、
まあ大丈夫だとは思うのですけれど。
(なぜかMSSQL関数使うほうではエミュレーションしてたりする)


PHP-users メーリングリストの案内