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

Eiji Tokuya e-tokuya @ sankyo-unyu.jp
2002年 3月 11日 (月) 16:19:20 JST


徳家です。

> 谷田です。
>
> On Mon, 11 Mar 2002 01:59:01 +0900
> YTP <ytp @ vc-net.ne.jp> wrote:
>
> > >SJIS<->MS932のエンコーディングの微妙な違いは確かに随所で問題になってい
ま
> > >すが、扱うエンコーディングがどちらかに決定していれば問題はないはずで
す。
> >
> > これもおっしゃる通りです。
> > プラットフォームのデフォルトエンコーディングに
> > 決定していて欲しい、ということなんです。
> >
> > JVMが動作している環境のデフォルトエンコーディングは
> > System.getProperty("file.encoding");
> > と書けば取得出来ますよね。
> > これに加えてRDBに格納されているデータのエンコーディングが取れれば
> > 間違いなくそのプラットフォームのデフォルトエンコーディングに
> > デコード出来るのではないかな、と思ったんですが...
>
> えっと・・・つまるところ
>
> ・SJIS/MS932問題はJava-PostgreSQL間で利用するエンコーディングが決まって
> いれば起こらない

そうですね。

> ・ところで、PostgreSQLとの通信はSJISが使えるが、Win32のJDKではMS932がデ
> フォルトである。

PostgreSQLのClientEncoding のSJISは実はMS932と全く等価な
文字集合であるので問題なく利用可能である。(^^;)
JavaをSJISではなくMS932で使えば何ら問題ありません。

注意点 : DBをEUC_JPで作って、DB接続直後に
「set client_encoding to 'sjis';」を送信してあげるようにすれば、
MS932用のアプリを組むことでそのまま利用できるようにしています。

> ・MS932をPostgreSQLでサポートすれば、SJIS/MS932問題が起こらないのでサポー
> トして欲しい

既にClientEncodingでサポート済である。

>
> ということでよろしいでしょうか?

これでは、よろしくないですか?(^^;;;

>
> で、実際にエンコーディングとしてMS932(IANAでいうWindows_31J)をサポートす
> るかどうかについてはいかがでしょうか?>石井さん、徳家さん

DBの作り方とClientEncodingの指定の仕方を間違えなければ、
PostgreSQLにおいてSJIS/MS932問題は本来発生しない問題です。
よってこれについては新たな改良は行いません。
石井さんもおそらく同じだとおもいます。

doc/README.mb.jaやマニュアルのcharsetの項を見てくださいね。
「CP932」という言葉が、「MS932」と呼び方が違うが同じものです。


徳家




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