[pgsql-jp: 38290] Re: エンコーディングSQL_ASCIIについて

EBIHARA, Yuichiro ebihara @ iplocks.co.jp
2007年 4月 4日 (水) 17:49:01 JST


海老原です。

> > そのSQL_ASCIIのデータベースに格納されている日本語のエンコーディ
> > ングは何なのでしょうか。
> > V8のJDBCドライバは、クライアントエンコーディングに"UNICODE"を
> > 決めうちで設定しているはずなので、UTF-8なら問題なし、そうでなけ
> > ればJDBCドライバを改造しないといけないと思います。
> >
> 改造して格納されている日本語のエンコーディングを設定できるように
> すればよいということでしょうか。
> SQL_ASCIIのデータベースに格納されている日本語のエンコーディ
> ングは、SQL_ASCIIではないのですか。
> 実は別のエンコーディングないなっているのでしょうか。

SQL_ASCIIはその名の通りASCIIキャラクタしかサポートしていません。
ただし、クライアントエンコーディングもSQL_ASCIIにするなどして、
自動変換が発生しないようにすれば、無変換で何でも格納できたはずです。

問題は無変換で入れたのがEUC-JPなのかSJISなのかUTF-8なのか・・・。

ところで、取り出そうとしているデータは、実は既にDB内で化けて
しまっているなんてことはないですよね?

> 改造するファイルは、org.postgresql.core.v2.ConnectionFactoryImpl.java
> 
> でしょうか。UNICODEの代わりに何を指定すればよろしいでしょうか。
> どうぞよろしくお願いします。

ごめんなさい、ちょっとそこまでは・・・。
単にset client_encoding='???'とするだけでなく、文字列データの受け渡し時に
も、きちんと指定したエンコーディングが働くように考慮する必要もある
でしょうし。

えびはら





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