[pgsql-jp: 25208] Windows上JDBCでのエンコーディング
YTP
ytp @ vc-net.ne.jp
2002年 3月 11日 (月) 01:59:01 JST
田中良浩 です。
★表題を変えました。
>> この値を受け取ったアプリケーションが何かの理由で
>> エンコーディングを指定せず、つまりデフォルトエンコーディングである
>> "MS932"を使って再度変換をかけると、
>
>その「変換をかける」という行為自体がそもそも誤りではないでしょうか?つま
>り、ここで指定している"MS932"自体が元々どのエンコーディングであるかを無
>視しているため問題が起こる、といいたいのです。
最初に結論を申し上げますと、
Postgreが提供するJDBCの内部でのデコードは、
プラットフォームに合わせたデフォルトエンコーディングを使って
処理するようにはできないでしょうか、ということなんです。
(現状では、サーバ上のエンコーディング指定で決め打ちしている
ように見え、結果的にSJISになってしまうと思います)
"変換をかける"と書いたのは、
アプリケーション的な理由で右づめにして先頭スペース埋めをしたい
などというフォーマット処理のことを指しています。
そういったフォーマットをする際にはデフォルトエンコーディングを
利用することが大半なので(楽ですから)、
RDBから読み込んだ時点でデータのエンコーディングが
デフォルトになっていてくれればありがたい、
ということが言いたかったんです。
>SJIS<->MS932のエンコーディングの微妙な違いは確かに随所で問題になっていま
>すが、扱うエンコーディングがどちらかに決定していれば問題はないはずです。
これもおっしゃる通りです。
プラットフォームのデフォルトエンコーディングに
決定していて欲しい、ということなんです。
JVMが動作している環境のデフォルトエンコーディングは
System.getProperty("file.encoding");
と書けば取得出来ますよね。
これに加えてRDBに格納されているデータのエンコーディングが取れれば
間違いなくそのプラットフォームのデフォルトエンコーディングに
デコード出来るのではないかな、と思ったんですが...
レポートはUSにということなので時間を見つけて
リクエストしてみます。
(この辺のコーディングは事情に詳しい日本人がやった方が
いいとも思うので、そのうちトライしてみます)
------------------------------------
田中 良浩(TANAKA Yoshihiro) / 日本インターシステムズ(株)
E-mail:tanakay @ nisz.co.jp -------------------------------
pgsql-jp メーリングリストの案内