akios @ ウィキ
3.1. Unicode
最終更新:
akios
-
view
3. 字句構造
3.1. Unicode
プログラムはUnicode文字集合(character set)にて記述します。この文字集合とそれと関連する文字符号化(encoding)についてはhttp://www.unicode.org/を参照してください。
Java SEプラットフォームをUnicodeの仕様の更新を追っています。リリース毎の正確なUnicodeのバージョンはCharacterクラスのドキュメントに明記されています。
Javaプログラミング言語の1.1より前のバージョンはUnicodeバージョン1.1.5を使用しています。Unicode規格の新規バージョンへのアップグレードはJDK 1.1の時にUnicode 2.0へ、JDK1.1.7の時にUnicode 2.1へ、Java SE 1.4の時にUnicode 3.0へ、Java SE 5.0の時にUnicode 4.0へ対応が行われています。
Unicodeは元々16ビット固定長で策定されてきましたが、収録される文字数が増加し16ビットでは不足するようになりました。現在規定されているコードポイントの範囲は、16進数U+n記法で表すと、U+0000からU+10FFFFです。U+FFFF超の文字を補助文字(supplementary character)と呼びます。16ビットのコード長で全文字を表現するため、UnicodeではUTF-16と呼ばれる符号化を定義しています。UTF-16では補助文字は16ビット長のコードを2個、ペアで使用することによって符号化され、最初のコードは高位サロゲート(high-surrogate)範囲(U+D800からU+DBFF)、次のコードは下位サロゲート(low-surrogate)範囲(U+DC00からU+DFFF)を使用します。コードポイントU+0000からU+FFFFの文字については、UTF-16のコードとコードポイントの値はまったく同じです。
Javaプログラミング言語ではプログラムを記述するテキストはUTF-16符号化を用いた16ビット長の文字の並びです。
JavaSEプラットフォームのいくつかのAPI、特にCharacterクラス、によって個々のエントリが32ビット整数であるようなコード単位を使うことができます。Java SEプラットフォームは16ビットと32ビット表現間の変換メソッドを提供しています。
本仕様では特に明示がなければコードユニットとして暗黙的にUTF-16を使用しています。
ASCII (ANSI X3.4)とはAmerican Standard Code for Information Interchangeの略です。Unicode UTF-16符号化の最初の128文字がASCII文字です。