各国キャラクタセット変換

翻訳追加しました.
http://ikda.net/fswiki/wiki.cgi?page=JDBC+4%2E0+%BB%C5%CD%CD%BD%F1



各国キャラクタセットの変換

SQL2003は各国キャラクタセット型のサポートを提供しています.次のJDBCのデータ型は各国キャラクタセット型へアクセスする際に使用します:NCHAR,NVARCHAR,LONGVARCHAR,NCLOB.これらの型はCHAR,VARCHAR,LONGVARCHAR,CLOB型と類似していますが,値が各国キャラクタセットを使ってエンコードされる点が異なります.JavaではUTF-16を用いて文字データがエンコードされていますので,これらの値にJavaの型以外を使用する理由はありません.しかしCLOBとNCLOBを区別することのメリットというのもあります.JDBC 仕様では,NCHAR,NVARCHAR,LONGVARCHAR型のデータを表すのにStringを使用し,Javaキャラクタセットと各国キャラクタセットの間で自動変換を行います.ClobとNClobの間では自動変換は行いません.Java言語がどのようにUnicodeを使用するかについての追加情報に関しては,Java API Docのjava.lang.Characterのページを参照して下さい.

移植性を最大限に高めるために,アプリケーションは各国キャラクタセットを使用する時にはJDBCドライバにそのことを伝えるようにしなければなりません.各国キャラクタセットを使用している値をパラメータに使用する際には,アプリケーションはsetNString, setNCharacterStream,setNClob,あるいはsetObjectメソッドを使用します.setObjectメソッドを使用する場合には,対象のデータ型としてTypes.NCHAR,Types.NCLOB,Types.NCLOB,Types.NVARHCAR,または Types.LONGVARCHARが指定されていなければなりません.アプリケーションが各国キャラクタセットを使用してパラメータを設定する際にそのようにしてJDBCドライバに通知しなかった場合には,JDBCドライバは値の解釈を間違って行ってしまう可能性があり,その結果,データ変換エラーとなる可能性があります.データ変換エラーが発生するとJDBCドライバが検知できるような場合には,そのsetXXXメソッドを呼び出した場合には SQLExceptionがスローされることになります.ドライバは全ての変換エラーを検知できるとは限りません.

ドライバが各国キャラクタセットをサポートしていない場合には,各国キャラクタセットのデータを使ったsetNString, setNCharacterStream,setNClob,setObjectの呼び出しが行われるとSQLExceptionがスローされる可能性があります.

各国キャラクタセットによる値を取得するためには,アプリケーションはgetNString,getNClob,getNCharacterStream,またはgetObjectメソッドを呼ぶ必要があります.



翻訳はここまで.てかこれだけかよ.ううむ.もうちょっと説明が欲しいところ.