[pgsql-jp: 36850] Re: client encoding と PQexec

Jun Kuriyama kuriyama @ imgsrc.co.jp
2006年 3月 9日 (木) 22:56:42 JST


 おお、同じところで引っかかっていたのですね。

At Thu, 09 Mar 2006 22:47:36 +0900,
nomoto wrote:
> > 従来 Shift_JIS な HTML を生成する Perl CGI で、EUC-JP な PostgreSQL
> >DB からデータを持ってくるのに、Jcode.pm などを使って値を明示的に変換す
> >る、ということをしていたのですが、ちょっと今回 client encoding を指定
> >する機能を使ってみようと思いました。
> 
> との事ですが、一番なのはソースもEUCにしちゃって、HTMLを出力する
> ところとフォームからのパラメータを読み込むところで(プログラムへの
> inとoutで)SJIS<=>EUCの文字コード変換をしてしまうのがスマートかと
> 思います。

 私も普段は Perl 側で受け取ったものはすべて EUC-JP にして扱っています。
単に今回 client encoding の機能を使ってみよう、と魔が差してしまっただ
けです。:-)

> 以前SJISで同じ現象が発生してDBDのソースを調査したのですが
> DBDのquote処理は、マルチバイト文字を考慮してないのでSJIS文字
> 2バイト目の\までエスケープしてしまうため、SJISでDBI::DBDを使って
> はダメだ。という結論に達しました。

 重村氏とやんややんやと議論してみたのですが、彼も DBD::Pg が SJIS を
意識した quote をしないのがダメ、といっています。というよりも、quote
をサーバ側に任せないで自前でやっているのがダメ、というのが根本的なとこ
ろな気がしています。


-- 
Jun Kuriyama <kuriyama @ imgsrc.co.jp> // IMG SRC, Inc.



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