[pgpool-general-jp: 28] Re: エスケープ文字の扱い

ISHIDA Akio iakio @ mono-space.net
2006年 11月 11日 (土) 21:34:58 JST


こんにちは。石田@苫小牧市です。

私が勘違いしているかもしれませんが、
シングルクォートで囲まれた文字列リテラル内のバックスラッシュを
二重にする必要があるのは、
pgpool ともマルチバイトとも関係無く、PostgreSQL では
(現在のバージョンでは)常に必要なのではないでしょうか。

文字コード変換でエラーが出なかったとしても、
正しい結果になりません。

ishida=# select '\a';
 ?column?
----------
 a
(1 row)

ishida=# select '\\a';
 ?column?
----------
 \a
(1 row)


06/11/11 に koyama<mlus @ hintmark.com> さんは書きました:
> xeon-koyamaです。
>
> 以下の環境で、'\' 文字の扱いで質問させてください。
>
> Windowsクライアント----pgpool------postgres8.1.4
> (MS932)                              (UTF-8)
>
> INSERT INTO テーブル VALUES('これは\問題の文字');
>
> を行った場合、UTF-8 へのコンバート時に、障害が発生しています。
>
> 対象文字が分かっているので、WindowsクライアントのSQL作成時に、
> INSERT INTO テーブル VALUES('これは\\問題の文字');
>
> とすれば良いだけなのですが、本来、この作業は
>
> 1 Postgresのドライバーがやってくれるものなのでしょうか?
>
> 2 それとも、DBがUTF-8で作成されているのが分かっているのだから、
>   クライアント側で、\\変換したものを作成すべきなのでしょうか?
> 3 pgpoolの段階で、問題がある のでしょうか?
>
> 判断ができないので、質問させて頂きました。
> 宜しくお願い致します。
>
>
> _______________________________________________
> pgpool-general-jp mailing list
> pgpool-general-jp @ sraoss.jp
> http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
>


-- 
ISHIDA Akio <iakio @ mono-space.net/ishida @ cycleof5th.com>


pgpool-general-jp メーリングリストの案内