PostgreSQL JDBC ドライバ 文字エンコーディングパッチ
PostgreSQL
6.5.2 の
JDBC ドライバで、データベースの文字エンコーディングを Java 環境での
デフォルト文字エンコーディングと区別して扱うようにするパッチです。
※ 6.5.3 の JDBC ドライバにもそのままあたります。
使い方
ドライバとして、"postgresql.Driver" でなく、"postgresql.ce.Driver" を
使用します。
"postgresql.Driver" を指定すると、オリジナルと同じ動作になります。
(なるはずです。)
データベースの文字エンコーディングは接続時にドライバ内部で
SQL によってデータベースバックエンドから取得しています。
なんらかの理由で明示的に指定したい場合は URL に下記のように
追加すると、こちらを優先するようにしてあります。
jdbc:postgresql://pghost/database&charactorEncoding=EUC_JP
使用できるエンコーディング名
Java が内部に持つ文字エンコーディング変換機構を利用しているので、
Java の文字エンコーディング名が使用できます。MULE_INTERNAL は
使用できません。
Java の文字エンコーディング名は、下記が参考になります。
PostgreSQL での文字エンコーディング名は、
postgresql/ce/PgCharactorEncoding.java のテーブルにあるものについては
Java の文字エンコーディング名にマッピングするようになっています。
注意点
"postgresql.ce.Driver" だけでなく、"postgresql.Driver" も
Class.forName() 等でロードすると、両方のドライバがドライバマネージャに
登録されてしまいます。扱うサブプロトコルが同じため、PostgreSQL 用の
URL で両方のドライバが有効になるので、文字エンコーディングを
区別しないドライバが動作する可能性があります。
呼び名の変更
マルチバイトが扱えないのを扱えるようにしたわけでもないので、
MB という名称はやめました。
履歴
- 1999 11/8 6.5.2 対応
サブクラス化
URL の一部に符号化した指定ができるようにした
唐沢@名古屋市大 さんのバグレポートのパッチ(2/20)取り込み
- 1998 12/14 6.4 対応、URL 指定できるように変更
- 1998 9/30 たかばとしはる さんが pgsql-jp メーリングリストで 6.3 用に
「jdbc UTF8 patch」
[pgsql-jp 3617] として公開されたものを他のエンコーディングでも
利用できるよう修正
その他
- 確認したプラットホームについて:
パッチの作成・動作確認は、
で行いました。
- 旧版
- 関連リンク
mochid@netside.co.jp