6 JSONデータのキャラクタ・セットおよび文字エンコーディング
テキストのJSONデータでは常にUnicodeキャラクタ・セットが使用されます。この点で、JSONデータの方がXMLデータより簡単に使用できます。これは、JSONデータ交換フォーマットの重要な部分です(RFC 4627)。Oracle Databaseで処理されるJSONデータでは、必要なキャラクタ・セットの変換が自動的に行われます。
Oracle Databaseでは、JSONデータの処理時にUTF-8を内部で使用します(解析、問合せ)。このような処理に入力されるデータまたはこのような処理から出力されるデータをUTF-8とは異なるキャラクタ・セットにする必要がある場合は、それに応じたキャラクタ・セット変換が実行されます。
キャラクタ・セット変換はパフォーマンスに影響する可能性があります。また、情報が失われる可能性もあります。入力データをUTF-8に変換する操作では情報が失われる可能性は高くありませんが、出力キャラクタ・セットで表すことができない文字の場合、出力への変換の結果として情報の損失が発生する可能性があります。
テキストのJSONデータがUnicodeのようにデータベースに格納されている場合、キャラクタ・セットの変換は必要ありません。これは、データベースのキャラクタ・セットがAL32UTF8 (Unicode UTF-8)である場合です。可能である場合、このようにすることをお薦めします。
テキストとして(つまり、文字として)格納されていないJSONデータでキャラクタ・セット変換が行われることはありません。この場合、変換する文字がありません。このことは、データ型BLOB
を使用して格納されているJSONデータではキャラクタ・セット変換が行われないことを意味します。
関連項目:
-
Unicodeの詳細は、Unicode.orgを参照してください
-
JSONデータ交換フォーマットについては、『IETF RFC4627』および『ECMA 404』を参照してください
-
データベースでの様々なキャラクタ・セットの使用の詳細は、Oracle Database Migration Assistant for Unicodeガイドを参照してください。
-
データベースでのキャラクタ・セット変換の詳細は、Oracle Databaseグローバリゼーション・サポート・ガイドを参照してください。