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

Tsunehisa Kazawa kazawa @ sons.co.jp
2002年 3月 11日 (月) 09:02:28 JST


加澤と申します。横からすみません。

Java を使って開発を行っている者としての意見です。

YTP wrote:
> 田中良浩 です。
[省略]
> 最初に結論を申し上げますと、
> Postgreが提供するJDBCの内部でのデコードは、
> プラットフォームに合わせたデフォルトエンコーディングを使って
> 処理するようにはできないでしょうか、ということなんです。
> (現状では、サーバ上のエンコーディング指定で決め打ちしている
> ように見え、結果的にSJISになってしまうと思います)

これは逆ではないでしょうか?RDBMS のようにさまざまなシステム、
OS から利用されることが想定されるようなシステムでは、クライア
ントサイドのデフォルトエンコーディングは使うべきではないと思い
ます。EUC-JP などとの相互変換のことを考えても SJIS コンバータ
固定の方が設計として望ましいのでは?

> "変換をかける"と書いたのは、
> アプリケーション的な理由で右づめにして先頭スペース埋めをしたい
> などというフォーマット処理のことを指しています。
> そういったフォーマットをする際にはデフォルトエンコーディングを
> 利用することが大半なので(楽ですから)、
> RDBから読み込んだ時点でデータのエンコーディングが
> デフォルトになっていてくれればありがたい、
> ということが言いたかったんです。

??意味がよく分かりません。文字列のフォーマット処理をするのに、
どうして byte[]<->String 変換が必要なのですか?

使用するコンバータに気をつけなくてはいけないのはもっぱら外部の
システムとの I/O を行う時で、しかもどのコンバータを用いるのか
はその外部システムに依存する問題です。デフォルトエンコーディン
グとは本来、JavaVM とそのプラットフォーム OS の間で I/O を行う
際に有用なエンコーディング、というだけの意味しかないわけで、そ
れを PostgreSQL のような OS 外にあるシステムに対しても適用する
ことが正しい設計だとは僕には思えません。

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



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