跳转到内容

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”,Java™ 语言规范 [1],Java SE 7 版,第 15-16 页。


华夏公益教科书