[pgsql-jp: 25207] Re: JDBCドライバ(7.2) でのエンコーディング判断障害

Yutaka tanida yutaka @ hi-net.zaq.ne.jp
2002年 3月 10日 (日) 22:45:12 JST


谷田です。

On Sun, 10 Mar 2002 12:02:22 +0900
TANAKA Yoshihiro <ytp @ vc-net.ne.jp> wrote:

> >PostgreSQLはDBエンコーディングにSJISやMS932は指定できません.
> Windows版でもEUC_JPのみサポートということでしょうか?

その通りです。

> >PostgreSQLは独自の変換エンジンを持っており、これがJavaのSJISエンコーディ
> >ングとちゃんとマッチするので問題ないはずです。
> 申し訳ありません、私の言葉が足りなかったようです。
> 私が指摘したのは、シフトJISとUnicodeマッピングの問題です。

ええ、この問題は知っています。

> 先のメールで書いた
> org.postgresql.core.Encoding#decode(byte[], int, int)
> の中の
> return new String(encodedString, offset, length, encoding);
> という部分ですが、この時にencodingの値が"SJIS"になっていると
> 問題が起き得ることを言いたかったんです。
> 
> この値を受け取ったアプリケーションが何かの理由で
> エンコーディングを指定せず、つまりデフォルトエンコーディングである
> "MS932"を使って再度変換をかけると、

その「変換をかける」という行為自体がそもそも誤りではないでしょうか?つま
り、ここで指定している"MS932"自体が元々どのエンコーディングであるかを無
視しているため問題が起こる、といいたいのです。

SJIS<->MS932のエンコーディングの微妙な違いは確かに随所で問題になっていま
すが、扱うエンコーディングがどちらかに決定していれば問題はないはずです。

確かに、一部のJava applicationには何でもかんでも1バイト文字として扱うの
で問題が起こるため再度変換しないといけないケースという物が存在していたの
は事実ですが。

---
Yutaka tanida<yutaka @ hi-net.zaq.ne.jp>
謎のWebsite http://www.hi-net.zaq.ne.jp/yutaka/




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