首页 > 代码库 > JavaScript字符集--------Unicode转义序列

JavaScript字符集--------Unicode转义序列

Unicode是ASCII和Latin-1的超集。

JavaScript程序都是用Unicode字符集编写而成的,但在一些计算机硬件和软件里根本无法显示或者输入Unicode字符全集,为了解决这一现象JavaScript定义了一种特殊序列,这种序列使用6个ASCII字符来代表任意16位Unicode内码,这种特殊序列统称为Unicode转义序列,它均以\u为前缀,其后跟随4个十六进制数,

比如:

 

“café”===”caf\u00e9” // =>true


但我们应该注意一点,Unicode是允许多种方法对同一字符进行编码的,用上述的é转义的例子来说明:

é:

  1. 可以使用Unicode字符\u00E9表示
  2. 亦可用e\u0301(语调字符)表示

假如用这两个Unicode转义字符进行比较,计算机得出的结果反而不相同

“\u00E9”===“e\u0301”  //false

虽然显示在文本编辑器上的结果是一样的,可是它们的二进制编码表示根本不一样,而编程语言最终都会转化为本地平台的计算机机械码(二进制编码),计算机只能通过对二进制编码的比较才能得知结果,所以它们比较最终的结果只能是false

所以这正是 “Unicode是允许多种方法对同一字符进行编码的”最好的解释,因为Unicode标准为所有字符定义了一个首选的编码格式以便于将文本转化后合适比较

再次以é为例:

比较facé与café中的é是否相同?

facé与café中的é都转化为\u00E9或者都转化为e\u0301,才能比较facé与café中的é是否相同