Unicode
外觀
| 導航 語言基礎 主題: |
大多數 Java 程式文字由 ASCII 字元組成,但任何 Unicode 字元都可以用作識別符號名稱的一部分,在註釋中以及在字元和字串字面量中。例如,π(即希臘小寫字母 pi)是一個有效的 Java 識別符號
程式碼部分 3.100:Pi。
double π = Math.PI;
|
以及在字串字面量中
程式碼部分 3.101:Pi 字面量。
String pi = "π";
|
Unicode 字元也可以透過 Unicode 轉義序列表示。Unicode 轉義序列可以出現在 Java 原始碼檔案的任何地方(包括識別符號、註釋和字串字面量中)。
Unicode 轉義序列由以下部分組成:
- 反斜槓 '
\'(ASCII 字元 92,十六進位制 0x5c), - '
u'(ASCII 117,十六進位制 0x75) - 可選的一個或多個額外的 '
u' 字元,以及 - 四個十六進位制數字(字元 '
0' 到 '9' 或 'a' 到 'f' 或 'A' 到 'F')。
這些序列表示 Unicode 字元的 UTF-16 編碼。例如,'a' 等效於 '\u0061'。這種轉義方法不支援超出 U+FFFF 的字元,或者您必須使用代理對。[1]
程式中的任何和所有字元都可以用 Unicode 跳脫字元表示,但除了 Java 編譯器之外,這樣的程式可讀性很差,而且它們並不緊湊。
您可以在此處找到所有字元的完整列表。
π 也可表示為 Java 中的Unicode 轉義序列\u03C0。因此,以下是一個有效但不可讀的宣告和賦值
程式碼部分 3.102:Pi 的 Unicode 轉義序列。
double \u03C0 = Math.PI;
|
以下演示了在其他 Java 語法中使用 Unicode 轉義序列
程式碼部分 3.103:字串字面量中的 Unicode 轉義序列。
// Declare Strings pi and quote which contain \u03C0 and \u0027 respectively:
String pi = "\u03C0";
String quote = "\u0027";
|
請注意,Unicode 轉義序列的功能與原始碼中的任何其他字元相同。例如,\u0022(雙引號,“)需要在字串中像“一樣加引號。
程式碼部分 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 程式碼;它包含類和變數名稱以及字串字面量中的中文字元
程式碼清單 3.50:哈嘍世界.java
public class 哈嘍世界 {
private String 文字 = "哈嘍世界";
}
|
參考資料
[edit | edit source]