マルチバイト環境での使用にあたって
WebLogic Server 8.1 SP5 および WebLogic Server 9.0 より、codePageOverride プロパティを指定しない場合のデフォルトの文字コード マッピングが変わります。
WebLogic Server 8.1 SP4 までは、codePageOverride プロパティを指定しない場合、Java と Oracle JA16SJIS/JA16SJISTILDE/JA16SJISYEN データベース間の文字コード変換に独自のマッピングを使用しておりましたが、WebLogic Server 8.1 SP5 および WebLogic Server 9.0 より Oracle Thin Driver と同様のマッピングを行うように変更されています。
過去のバージョンの WebLogic Type4 JDBC Driver for Oracle (WebLogic Server 8.1 SP3/SP4 にバンドルされていたバージョン等) を使用しており、codePageOverride プロパティを指定していない場合は、バージョンアップ時に変換マッピングが変わる文字コードがあります。
図 1. WebLogic Type4 JDBC Driver のバージョン確認方法
Connection conn = getConnection(); |
データベースが JA16SJIS の場合、3.3.44 (SP3) では、Java SJIS エンコーディングで扱うことができない文字については JA16SJIS への文字コード変換が行われませんでした。3.40.57 以降 (WLS 8.1 SP5 および WLS 9.0 以降) から Oracle Thin Driver と同様の位置に変換されるようになります。
データベースが JA16SJIS の場合、3.3.44 (SP3) では、Java SJIS エンコーディングで扱うことができない文字については Unicode への文字コード変換が行われませんでした。また表 1 にある文字については SJIS コンバータと同様の位置に変換されていました。3.40.19 (SP4) 以降から Oracle Thin Driver と同様の位置に変換されるようになります (表 2 参照)。
表 1. 複数マッピングのある文字
JA16SJIS | SJIS コンバータ | MS932 コンバータ | ||
---|---|---|---|---|
Horizontal Bar | ― | 0x815c | U+2014 | U+2015 |
Wave Dash (Tilde) | ~ | 0x8160 | U+301c | U+ff5e |
Double Vertical Line | ∥ | 0x8161 | U+2016 | U+2225 |
Minus Sign | - | 0x817c | U+2212 | U+ff0d |
Cent Sign | ¢ | 0x8191 | U+00a2 | U+ffe0 |
Pond Sign | £ | 0x8192 | U+00a3 | U+ffe1 |
Not Sign | ¬ | 0x81ca | U+00ac | U+ffe2 |
表 2. JA16SJIS から Unicode 変換における、3.3.44 と 3.40.19 以降間のマッピングの違い
JA16SJIS | 3.3.44 | 3.40.19以降 | ||
---|---|---|---|---|
Horizontal Bar | ― | 0x815c | U+2014 | U+2015 |
Wave Dash (Tilde)** | ~ | 0x8160 | U+301c | U+301c |
Double Vertical Line | ∥ | 0x8161 | U+2016 | U+2225 |
Minus Sign | - | 0x817c | U+2212 | U+ff0d |
Cent Sign | ¢ | 0x8191 | U+00a2 | U+ffe0 |
Pond Sign | £ | 0x8192 | U+00a3 | U+ffe1 |
Not Sign | ¬ | 0x81ca | U+00ac | U+ffe2 |
**Wave Dash は 3.3.44 と 3.40.19 以降間でマッピングが変わりません
*ドライババージョンの確認方法は、図 1「WebLogic Type4 JDBC Driver のバージョン確認方法」を参照してください。
データベースが JA16SJIS または JA16SJISTILDE の場合、3.40.19 (SP4) では Java SJIS エンコーディングで扱うことにできない文字については、JA16SJIS への文字コード変換が行えませんでした。3.40.57 以降 (WLS 8.1 SP5 および WLS 9.0 以降) から Oracle Thin Driver と同様の位置に変換されるようになります。
データベースが JA16SJIS または JA16SJISTILDE の場合、3.40.19 (SP4) では Java SJIS エンコーディングで扱うことにできない文字については、Unicode への文字コード変換が行えませんでした。3.40.57 以降 (WLS 8.1 SP5 および WLS 9.0 以降) から Oracle Thin Driver と同様の位置に変換されるようになります。
codePageOverride プロパティを指定していないアプリケーションを、3.40.57 以降 (WLS 8.1 SP5 および WLS 9.0 以降) にバージョンアップされる際は、サポート窓口までお問い合わせください。ご使用のバージョンに関するマッピング変更の詳細情報をご提供いたします。