Unicode 字符可以适用于所有已知的编码。Unicode 是继 ASCII(美国国家交互信息标准编码)字符码后的一种新字符编码,它为每一个符号定义一个数字和名称,并指定字符和它的数值(码位),以及该值的二进制位表示法,通过一个十六进制数字和前缀(U)定义一个16位的数值,如:U+0041 表示 A,其唯一的名称是 LATIN CAPITAL LETTER A。但请注意:JavaScript 1.3 之前的版本并不支持 Unicode 编码。
Unicode 与 ASCII 和 ISO 的兼容性
Unicode 兼容于 ASCII 字符并被大多数程序所支持,前128个 Unicode 码同 ASCII 码具有同样的字节值;Unicode 字符从 U+0020 到 U+007E 等同与 ASCII 码的 0x20 到 0x7E,不同于支持拉丁字母的7位 ASCII,Unicode 对每个字符进行16位值的编码设置,它允许几万个字符,例如 Unicode 2.0 版包含 38,885 个字符,它也可以进行扩展,如 UTF-16 允许用16位字符组合为一百万或更多的字符,UTF 将编码转换为真实的二进制位。
Unicode 完全兼容于国际标准 ISO/IEC 10646-1; 1993,它是 ISO 10646 的一个子集,并支持用两个八进制数的 ISO UCS-2(Universal Character Set)。JavaScript 1.3 版本对 Unicode 的支持意味着您可以任意地在程序中使用本地的字符以及特殊的科学符号。Unicode 提供了一种标准的方法来编码多语言文本,并且因为它兼容于 ASCII ,您也可以随意使用 ASCII 字符。
Unicode 转义序列
您可以在字符直接量中使用 Unicode 转义序列,该转义序列由六个 ASCII 字符组成:\u 加上一个四个数值的十六进制数。如:\u00A9 表示版权符号。JavaScript 里的每一个 Unicode 转义序列由一个字符所对应解释。下表是经常使用的特殊字符和它们的 Unicode 值。
类别 Unicode 值 名称 格式名称
空白(whitespace ) \u0009 制表符
\u000B 垂直制表符
\u000C 换页符
\u0020 空格
行结束符值 \u000A 换行符
\u000D 回车符
其它 Unicode 转义序列值 \u000b 退格符
\u0009 水平制表符
\u0022 双引号 "
\u0027 单引号 '
\u005C 反斜杠 /
JavaScript 对 Unicode 转义序列的用法不同于 Java。首先,在 JavaScript 中转义序列并没有解释为一个特殊的字符。例如:在一个字符串中的换行符转义序列在函数被解译前并不会终止该字符串,如果在注释中使用转义序列 JavaScript 将会忽略它。在 Java 中,如果一个转义序列被用于一个单独的注释行,它将被解译为一个 Unicode 字符。对于一个字符串直接量,Java 编译器将首先解译转义序列。例如:如果在 Java 中使用一个换行符(\u000A),它将会终止该字符串,在 Java 中将导致一个错误,因为在字符串直接量中不允许换行,您必须使用 \n 符;而在 JavaScript 中,这两者之间并没有区别。
用 Unicode 显示字符
您可以在不同的语言中使用 Unicode 来显示字符或专业符号,但这需要一个客户端能够支持 Unicode,例如 Netscape Navigator 4.x,并且客户端还得支持 Unicode 字体以及操作平台的支援。例如 Windows 95 它只支持部分的 Unicode,另外,为了输入非 ASCII 字符,您还得有支持所有 Unicode 字符的输入设备,一个标准的扩展键盘不能够做到这一点,但我们可以用 Unicode 转义序列来输入 Unicode 字符。如果您还需了解 Unicode 更多的信息,请参见 Unicode Consortium Web site 2.0版。