B Unicode Character Code Assignments
This appendix provides an introduction to Unicode character assignments. This appendix contains the following topics:
B.1 Unicode Code Ranges
Table B-1 contains code ranges that have been allocated in Unicode for UTF-16 character codes.
Table B-1 Unicode Character Code Ranges for UTF-16 Character Codes
Types of Characters | First 16 Bits | Second 16 Bits |
---|---|---|
ASCII |
0000-007F |
- |
European (except ASCII), Arabic, Hebrew |
0080-07FF |
- |
Iindic, Thai, certain symbols (such as the euro symbol), Chinese, Japanese, Korean |
0800-0FFF 1000 - CFFF D000 - D7FF F900 - FFFF |
- |
Private Use Area #1 |
E000 - EFFF F000 - F8FF |
- |
Supplementary characters: Additional Chinese, Japanese, and Korean characters; historic characters; musical symbols; mathematical symbols |
D800 - D8BF D8CO - DABF DAC0 - DB7F |
DC00 - DFFF DC00 - DFFF DC00 - DFFF |
Private Use Area #2 |
DB80 - DBBF DBC0 - DBFF |
DC00 - DFFF DC00 - DFFF |
Table B-2 contains code ranges that have been allocated in Unicode for UTF-8 character codes.
Table B-2 Unicode Character Code Ranges for UTF-8 Character Codes
Types of Characters | First Byte | Second Byte | Third Byte | Fourth Byte |
---|---|---|---|---|
ASCII |
00 - 7F |
- |
- |
- |
European (except ASCII), Arabic, Hebrew |
C2 - DF |
80 - BF |
- |
- |
Indic, Thai, certain symbols (such as the euro symbol), Chinese, Japanese, Korean |
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 |
- |
Supplementary characters: Additional Chinese, Japanese, and Korean characters; historic characters; musical symbols; mathematical symbols |
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 |
Note:
Blank spaces represent nonapplicable code assignments. Character codes are shown in hexadecimal representation.
B.2 UTF-16 Encoding
As shown in Table B-1, UTF-16 character codes for some characters (Additional Chinese/Japanese/Korean characters and Private Use Area #2) are represented in two units of 16-bits. These are supplementary characters. A supplementary character consists of two 16-bit values. The first 16-bit value is encoded in the range from 0xD800 to 0xDBFF. The second 16-bit value is encoded in the range from 0xDC00 to 0xDFFF. With supplementary characters, UTF-16 character codes can represent more than one million characters. Without supplementary characters, only 65,536 characters can be represented. The AL16UTF16 character set in Oracle Database supports supplementary characters.
See Also:
B.3 UTF-8 Encoding
The UTF-8 character codes in Table B-2 show that the following conditions are true:
-
ASCII characters use 1 byte
-
European (except ASCII), Arabic, and Hebrew characters require 2 bytes
-
Indic, Thai, Chinese, Japanese, and Korean characters as well as certain symbols such as the euro symbol require 3 bytes
-
Characters in the Private Use Area #1 require 3 bytes
-
Supplementary characters require 4 bytes
-
Characters in the Private Use Area #2 require 4 bytes
In Oracle Database, the AL32UTF8 character set supports 1-byte, 2-byte, 3-byte, and 4-byte values. In Oracle Database, the UTF8 character set supports 1-byte, 2-byte, and 3-byte values, but not 4-byte values.