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文字のみ(もしくはASCII文字に変換されるUnicodeエスケープ)で構成されています。

ASCII (ANSI X3.4)とはAmerican Standard Code for Information Interchangeの略です。Unicode UTF-16符号化の最初の128文字がASCII文字です。

3.2. 字句変換

3.3. Unicodeエスケープ

3.4. 行終端子

3.5. 入力要素とトークン

3.6. 空白

3.7. コメント

3.8. 識別子

3.9. キーワード

3.10. リテラル

3.11. 分離子

3.12. 演算子

目安箱バナー