[pgsql-jp: 37191] Re: PQescapeStringのreturn値について
ISHIDA Akio
iakio @ mono-space.net
2006年 6月 9日 (金) 06:14:55 JST
こんにちは。石田@苫小牧市です。
06/06/08 に Tatsuo Ishii<ishii @ sraoss.co.jp> さんは書きました:
> 石井です.
>
> > 北河です。
> > libpq 8.1.4にて下記の現象を確認しました。
> >
> > 動作環境
> > RedhatLinux AS3
> > kernel:2.4.21-40
> > PostgreSQL:8.1.4(libpq8.1.4)
> > client_encoding:sjis
> >
> > 現象
> > PQescapeStringに1バイト目に文字コード[0x8F]を含むSJISの2バイト文字列
> > (「春」「準」「諸」等)を渡すと、結果として末尾に半角スペースが付加された
> > 文字列がreturnされる。
> > これは「春が来た」、「今は春です」等のように、渡す文字列の一部に含まれる
> > 場合でも同様です。
>
> こちらでは再現しませんね.
クライアントエンコーディングがsjis ではなく euc_jp に
なっていると、北河さんのおっしゃるような現象になります。
例えば、石井さんのサンプルのコードを、
クライアントエンコーディングをセットする前に
PQescapeString を実行するように変更すると、
---
PQescapeString returns 3
=8f= =74= =20=
---
となります。
クライアントエンコーディングが正しく設定されているか
確認されてみてはいかがでしょうか。
--
ISHIDA Akio <iakio @ mono-space.net/ishida @ cycleof5th.com>
pgsql-jp メーリングリストの案内