B Unicode文字コードの割当て

この付録では、Unicode文字の割当てを紹介します。この付録の内容は次のとおりです。

B.1 Unicodeのコード範囲

表B-1に、UnicodeでUTF-16文字コード用に割り当てられているコード範囲を示します。

表B-1 UTF-16文字コード用のUnicode文字コード範囲

文字のタイプ 最初の16ビット 次の16ビット

ASCII

0000-007F

-

ヨーロッパ語(ASCIIを除く)、アラビア語、ヘブライ語

0080-07FF

-

インド語、タイ語、記号(ユーロ記号など)、中国語、日本語、韓国語

0800-0FFF

1000 - CFFF

D000 - D7FF

F900-FFFF

-

Private Use Area #1

E000 - EFFF

F000 - F8FF

-

補助文字: その他の中国語、日本語および韓国語の文字、旧漢字、音楽記号および数学記号

D800 - D8BF

D8CO - DABF

DAC0 - DB7F

DC00 - DFFF

DC00 - DFFF

DC00 - DFFF

Private Use Area #2

DB80 - DBBF

DBC0 - DBFF

DC00 - DFFF

DC00 - DFFF

表B-2に、UnicodeでUTF-8文字コード用に割り当てられているコード範囲を示します。

表B-2 UTF-8文字コード用のUnicode文字コード範囲

文字のタイプ 第1バイト 第2バイト 第3バイト 第4バイト

ASCII

00-7F

-

-

-

ヨーロッパ語(ASCIIを除く)、アラビア語、ヘブライ語

C2-DF

80-BF

-

-

インド語、タイ語、記号(ユーロ記号など)、中国語、日本語、韓国語

E0

E1-EC

ED

EF

A0-BF

80-BF

80-9F

A4-BF

80-BF

80-BF

80-BF

80-BF

-

Private Use Area #1

EE

EF

80-BF

80-A3

80-BF

80-BF

-

補助文字: その他の中国語、日本語および韓国語の文字、旧漢字、音楽記号および数学記号

F0

F1-F2

F3

90-BF

80-BF

80-AF

80-BF

80-BF

80-BF

80-BF

80-BF

80-BF

Private Use Area #2

F3

F4

B0-BF

80-8F

80-BF

80-BF

80-BF

80-BF

ノート:

空白は、適用外のコード割当てを示します。文字コードは16進表現で示されています。

B.2 UTF-16エンコーディング

表B-1のように、一部の文字(その他の中国語/日本語/韓国語の文字およびPrivate Use Area #2)のUTF-16文字コードは、2単位の16ビットで表現されます。これらは補助文字です。1つの補助文字は、2つの16ビット値で構成されています。最初の16ビット値は0xD800から0xDBFFの範囲内でエンコードされます。次の16ビット値は0xDC00から0xDFFFの範囲内でエンコードされます。補助文字を使用すると、UTF-16文字コードは100万種類以上の文字を表現できます。補助文字を使用しなければ、65,536文字しか表現できません。Oracle DatabaseのAL16UTF16文字セットは、補助文字をサポートしています。

B.3 UTF-8エンコーディング

表B-2のUTF-8文字コードは、次の条件が適用されることを示しています。

  • ASCII文字には1バイトを使用します。

  • ヨーロッパ語(ASCIIを除く)、アラビア語およびヘブライ語の文字の場合は、2バイト必要です。

  • インド語、タイ語、中国語、日本語および韓国語の文字、およびユーロなどの記号の場合は、3バイト必要です。

  • Private Use Area #1の文字の場合は、3バイト必要です。

  • 補助文字の場合は、4バイト必要です。

  • Private Use Area #2の文字の場合は、4バイト必要です。

Oracle DatabaseのAL32UTF8文字セットは、1バイト、2バイト、3バイトおよび4バイト値をサポートしています。Oracle DatabaseのUTF8文字セットは、1バイト、2バイトおよび3バイト値をサポートしていますが、4バイト値はサポートしていません。