[pgsql-jp: 25216] Re: Windows上JDBC でのエンコーディング

Tsunehisa Kazawa kazawa @ sons.co.jp
2002年 3月 11日 (月) 13:18:07 JST


加澤です。

SUGIMURA Takashi 杉村貴士 wrote:
> 杉村です。
>
> アプリケーションで受け取るまでは EUC_JP (EUC-JP だと思う。。) にしておいて、
> 出力するときに MS932 にするというのでは逃げられないのでしょうか。

ほとんどの場合、逃げられないのではないかと思います。

例えば「〜」を例に取りますと、EUC-JP での「〜」は通常 0xa1、0xc1
というバイト列で表されます。この文字を Java で普通に EUC-JP コンバー
タを利用して Unicode 化すると \u301c になります。この文字は先に示
した通り、MS932 コンバータでは「? (0x3f)」に変換されてしまいます。

MS932 コンバータで Shift JIS の「〜 (0x81、0x60)」を得たい場合に
は、この場合も \u301c→\uff5e 変換を行う必要があります。

なお、DB 側に格納されている「〜」が EUC で 0x8f、0xa2、0xb7 という
コードの場合は、Java の EUC-JP コンバータを用いると \uff5e と相互変
換が可能ですから、このまま MS932 として出力可能です。この場合は杉村
さんがおっしゃる方法で全て解決、だと思います。

#SJIS クライアントから psql を叩きたい要求などが重なった時にどうな
#るのかは、僕は知りません。

-- 
加澤恒央
Tsunehisa KAZAWA
kazawa @ sons.co.jp
SONS,. Ltd. Programmer



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