検索

7.6. データベースの Unicode サポートを設定する

download PDF

すべてのフィールドの Unicode サポートは、データベースが VARCHAR および CHAR フィールドで Unicode 文字セットの使用を許可するかどうかによって異なります。

  • これらのフィールドが設定可能な場合、通常、Unicode はフィールド長を犠牲にして機能します。
  • データベースが NVARCHAR フィールドと NCHAR フィールドでのみ Unicode をサポートしている場合、サーバースキーマは VARCHAR フィールドと CHAR フィールドを広範囲に使用するため、すべてのテキストフィールドの Unicode サポートは機能しない可能性があります。

データベーススキーマは、次の特殊フィールドでのみ Unicode 文字列のサポートを提供します。

  • Realms: 表示名、HTML 表示名、ローカリゼーションテキスト (キーと値)
  • Federation プロバイダー: 表示名
  • Users: ユーザー名、名、姓、属性名、値
  • Groups: 名前、属性名、値
  • Roles: 名前
  • オブジェクトの説明

それ以外の場合、データベースエンコーディングに含まれる文字に制限され、多くの場合それは 8 ビットです。ただし、データベースシステムによっては、Unicode 文字の UTF-8 エンコーディングを有効にし、すべてのテキストフィールドで完全な Unicode 文字セットを使用できます。特定のデータベースでは、この選択により、最大文字列長が 8 ビットエンコーディングでサポートされる最大文字列長よりも短くなる可能性があります。

7.6.1. Oracle データベースの Unicode サポートを設定する

Oracle データベースが VARCHAR フィールドおよび CHAR フィールドで Unicode をサポートするように作成されている場合、そのデータベースでは Unicode 文字がサポートされます。たとえば、AL32UTF8 をデータベース文字セットとして設定したとします。この場合、JDBC ドライバーに特別な設定は必要ありません。

データベースが Unicode をサポートするように作成されていない場合、特殊フィールドで Unicode 文字をサポートするように JDBC ドライバーを設定する必要があります。2 つのプロパティーを設定します。これらのプロパティーは、システムプロパティーまたは接続プロパティーとして設定できることに注意してください。

  1. oracle.jdbc.defaultNChartrue に設定します。
  2. 必要に応じて、oracle.jdbc.convertNcharLiteralstrue に設定します。

    注記

    これらのプロパティーとパフォーマンスへの影響の詳細は、Oracle JDBC ドライバーの設定ドキュメントを参照してください。

7.6.2. Microsoft SQL Server データベースの Unicode サポート

Unicode 文字は、Microsoft SQL Server データベースの特殊フィールドでのみサポートされます。データベースには特別な設定は必要ありません。

パフォーマンスを大幅に向上させるには、JDBC ドライバーの sendStringParametersAsUnicode プロパティーを false に設定する必要があります。このパラメーターがないと、Microsoft SQL Server はインデックスを使用できない可能性があります。

7.6.3. MySQL データベースの Unicode サポートを設定する

CREATE DATABASE コマンドの使用時に VARCHAR フィールドと CHAR フィールドで Unicode サポートを指定してデータベースが作成されている場合、MySQL データベースで Unicode 文字がサポートされます。

utf8 文字セットとはストレージ要件が異なるため、utf8mb4 文字セットはサポートされていないことに注意してください。詳細は、MySQL のドキュメントを参照してください。この状況では、バイト数ではなく文字数を収容するように列が作成されるため、非特殊フィールド以外の長さ制限は適用されません。データベースのデフォルト文字セットで Unicode を保存できない場合、特殊フィールドのみが Unicode 値を保存できます。

  1. Start MySQL Server.
  2. JDBC ドライバー設定で、JDBC 接続設定 を見つけます。
  3. 接続プロパティー characterEncoding=UTF-8 を追加します。

7.6.4. PostgreSQL データベースの Unicode サポートを設定する

データベースの文字セットが UTF8 の場合、Unicode は PostgreSQL データベースでサポートされます。任意のフィールドで Unicode 文字を使用でき、非特殊フィールドでフィールド長の削減はありません。JDBC ドライバーに特別な設定は必要ありません。文字セットは、PostgreSQL データベースの作成時に決定されます。

  1. 次の SQL コマンドを入力して、PostgreSQL クラスターのデフォルトの文字セットを確認します。

    show server_encoding;
  2. デフォルトの文字セットが UTF 8 ではない場合は、次のようなコマンドを使用して、デフォルトの文字セットが UTF8 のデータベースを作成します。

    create database keycloak with encoding 'UTF8';
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.