Unicode
外观
< Java 编程
导航 语言基础 主题: ) |
大多数 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]