跳轉到內容

Unicode

100% developed
來自華夏公益教科書

導航 語言基礎 主題: v  d  e )


大多數 Java 程式文字由 ASCII 字元組成,但任何 Unicode 字元都可以用作識別符號名稱的一部分,在註釋中以及在字元和字串字面量中。例如,π(即希臘小寫字母 pi)是一個有效的 Java 識別符號

Example 程式碼部分 3.100:Pi。
double π = Math.PI;

以及在字串字面量中

Example 程式碼部分 3.101:Pi 字面量。
String pi = "π";

Unicode 轉義序列

[編輯 | 編輯原始碼]

Unicode 字元也可以透過 Unicode 轉義序列表示。Unicode 轉義序列可以出現在 Java 原始碼檔案的任何地方(包括識別符號、註釋和字串字面量中)。

Unicode 轉義序列由以下部分組成:

  1. 反斜槓 '\'(ASCII 字元 92,十六進位制 0x5c),
  2. 'u'(ASCII 117,十六進位制 0x75)
  3. 可選的一個或多個額外的 'u' 字元,以及
  4. 四個十六進位制數字(字元 '0' 到 '9' 或 'a' 到 'f' 或 'A' 到 'F')。

這些序列表示 Unicode 字元的 UTF-16 編碼。例如,'a' 等效於 '\u0061'。這種轉義方法不支援超出 U+FFFF 的字元,或者您必須使用代理對。[1]

程式中的任何和所有字元都可以用 Unicode 跳脫字元表示,但除了 Java 編譯器之外,這樣的程式可讀性很差,而且它們並不緊湊。

您可以在此處找到所有字元的完整列表。

π 也可表示為 Java 中的Unicode 轉義序列\u03C0。因此,以下是一個有效但不可讀的宣告和賦值

Example 程式碼部分 3.102:Pi 的 Unicode 轉義序列。
double \u03C0 = Math.PI;

以下演示了在其他 Java 語法中使用 Unicode 轉義序列

Example 程式碼部分 3.103:字串字面量中的 Unicode 轉義序列。
// Declare Strings pi and quote which contain \u03C0 and \u0027 respectively:
String pi = "\u03C0";
String quote = "\u0027";

請注意,Unicode 轉義序列的功能與原始碼中的任何其他字元相同。例如,\u0022(雙引號,“)需要在字串中像“一樣加引號。

Example 程式碼部分 3.104:雙引號。
// Declare Strings doubleQuote1 and doubleQuote2 which both contain " (double quote):
String doubleQuote1 = "\"";
String doubleQuote2 = "\\u0022"; // "\u0022" doesn't work since """ doesn't work.

國際語言支援

[edit | edit source]

該語言區分位元組和字元。字元在內部使用 UCS-2 儲存,儘管從 J2SE 5.0 開始,該語言也支援使用 UTF-16 及其代理。因此,Java 程式原始碼可以包含任何 Unicode 字元。

因此,以下程式碼是完全有效的 Java 程式碼;它包含類和變數名稱以及字串字面量中的中文字元

Computer code 程式碼清單 3.50:哈嘍世界.java
public class 哈嘍世界 {
    private String 文字 = "哈嘍世界";
}

參考資料

[edit | edit source]
  1. "3.1 Unicode", The Java™ Language Specification [1], Java SE 7 Edition, pp. 15-16.


華夏公益教科書