WebObjects 5.2: JDBC URL を指定してデータベースサーバの文字エンコードを選択する方法
文字エンコードは、WebObjects アプリケーションのさまざまな局面で設定できます。たとえば、セッションデータの文字列エンコード、XML エンコード、データベースサーバのエンコーディング、クライアント Web ブラウザとのやり取りに使うエンコードなどです。この記事では、WebObjects アプリケーションのための正しい JDBC URL 構文を指定する方法を説明するとともに、国際文字をサポートしているデータベースサーバのエンコーディングの例を示します。
JDBC URL とコネクションディクショナリを入力するには:
- EOModeler ツールを起動します。
- 「Model」を選択し、次に「New」を選択して新規接続パネルを表示します。
- ユーザ名とパスワードを入力します。
- 正しい JDBC URL 構文については、下記の表を参考にしてください。
| データベース名 | データベースサーバエンコーディングの例 | JDBC URL 書式の例 | WebObjects のデフォルトエンコーディング |
| Oracle | JA16SJIS, Unicode (AL32UTF8) | jdbc:oracle:thin:@<SERVERNAME>:1521:<DBNAME> | MS932, UTF8 |
| Sybase | sjis, utf8 | jdbc:sybase:Tds:<SERVERNAME>:11222/<DBNAME> | MS932 |
| jdbc:sybase:Tds:<SERVERNAME>:11222/<DBNAME>?CHARSET=utf8&JCONNECT_VERSION=6 | UTF8 | ||
| Microsoft SQL Server 2000 | Japanese (cp932) | jdbc:microsoft:sqlserver://<SERVERNAME>:1433; DatabaseName=<DBNAME> | MS932, UTF8 |
| MySQL | Unicode | jdbc:mysql://<SERVERNAME>/<DBNAME>?useUnicode=true&characterEncoding=MS932 | MS932 |
| jdbc:mysql://<SERVERNAME>/<DBNAME>?useUnicode=true&characterEncoding=UTF8 | UTF8 | ||
| OpenBase | SHIFTJIS, Unicode UTF-8, Unicode Extended | jdbc:openbase://<SERVERNAME>/<DBNAME> | SJIS, UTF8 |
| OpenLDAP | Unicode | ldap://<SERVERNAME>:389/<dn> | UTF8 |
注:
1. データベースサーバのエンコーディング
移植性の点では Unicode または UTF が適していますが、データベースサーバのエンコーディングは、それ以外のシステム要件や使用パターンに応じて選択される傾向があります。たとえば、データベースが日本だけで使用される場合は、おそらく Shift-JIS が優先的に選択されます。通常、日本語のデータベースサーバは、Shift-JIS(およびそのバリエーションである MS932)、Japanese EUC、UTF8、UTF16 を使って構築されます。
2. Oracle、Sybase、Microsoft SQL Server 2000、MySQL 用の WebObjects のデフォルトエンコーディング:
デフォルトエンコーディングに MS932 を使う場合は、機種依存文字を使用できます。ただし、MS932 の使用は日本語だけに限定され、UTF8 は日本語以外の言語で使用されているさまざまな文字をカバーします。
WebObjects アプリケーションからブラウザの文字コードを設定する場合は、記事 107667 を参照してください。
3. データベースアダプタと JDBC ドライバ
Mac OS X 10.2、Windows 2000、WebObjects 5.2.1 の場合は、下記のアプリケーション運用ガイド(英語の情報です)を参照してください。
http://developer.apple.com/documentation/WebObjects/Deployment/Deploying_Applications/Installation/chapter_3_section_4.html
WebObjects の互換性については、記事 72598 も参照してください。
Mac OS X 10.3 と WebObjects 5.2.2 の場合は、下記の、新しいデータベースのバージョンと JDBC ドライバを使用できますが、アップルによって正式に動作が保証されているものではありません。
- 新しい JDBC ドライバである MySQL Connector/J 3.0
重要:JDBC ドライバ MySQL Connector/J 3.0 と OS X 10.3 を使用すると、外部タイプ "text" で日本語を使用できます。古い MySQL Connector/J 2.0 ドライバを使っているときに外部タイプ "text" の文字化けを回避するには、JDBC URL にキャラクタエンコーディングとして "UTF8" を含める必要があります。
例:
jdbc:mysql://<SERVERNAME>/<DBNAME>?useUnicode=true&characterEncoding=UTF8注意: MySQL Connector/J 3.0 は Windows 2000 では動作しません。
- OpenBase 7.0.5 のアップデートバージョンである OpenBase 8.0.0
- OpenLDAP 2.1.22
4. 追加情報
追加情報については、お使いの JDBC ドライバのドキュメントを参照してください。
Oracle 9i
日本語に対応しているデータベースエンコーディング: JA16SJIS または Unicode
JA16SJIS は、MS932 と SHIFTJIS に対応する Oracle の NLS スタイルの指定です。通常、データベースが日本だけで使用されるときに選択されます。
Sybase
JDBC URL 書式:国際文字をサポートするために UTF-8 文字セットを指定するには、CHARSET と JCONNECT_VERSION のパラメータ値を追加する必要があります。
jdbc:sybase:Tds:localhost:11222/JTest?CHARSET=utf8&JCONNECT_VERSION=6
Microsoft SQL Server 2000
次のデータタイプは、EOModeler や WebObjects アプリケーションではサポートされていません。
'nchar'、'nvarchar'、'ntext'。
OpenBase:機種依存文字を使用するには、データベースサーバのエンコーディングとして、Unicode UTF-8 または Unicode Extended を選択します。
重要:この記事の他社製品に関する内容は、情報提供のみを目的として掲載するもので、アップルがその情報を推奨したり是認するものではありません。より詳しい情報については、開発元・販売元にお問い合わせください。
記事 17159:Locating Vendor Information(英語の情報です)が特定のベンダの住所と電話番号を探すのに役立ちます。