跳转到内容

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.

国际语言支持

[编辑 | 编辑源代码]

该语言区分字节和字符。字符在内部使用 UCS-2 存储,尽管从 J2SE 5.0 开始,该语言也支持使用 UTF-16 及其代理。因此,Java 程序源代码可能包含任何 Unicode 字符。

因此,以下是完全有效的 Java 代码;它在类和 变量 名字以及字符串 文字 中包含中文字符

Computer code 代码清单 3.50:哈嘍世界.java
public class 哈嘍世界 {
    private String 文本 = "哈嘍世界";
}

参考文献

[编辑 | 编辑源代码]
  1. "3.1 Unicode", The Java™ Language Specification [1], Java SE 7 版,第 15-16 页。


华夏公益教科书