在JavaScript中,所有的string类型(或者被称为DOMString)都是使用UTF-16编码的。
DOMString
是一个UTF-16字符串。由于JavaScript已经使用了这样的字符串,所以DOMString 直接映射到 一个String
。
将 null
传递给接受DOMString的方法或参数时通常会把其stringifies为“null”。
引出的Unicode中UTF-8与UTF-16编码的详细了解
Unicode编码
Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。
通常Unicode编码是通过2 Byte来表示一个字符的,如U+A12B
,2 Byte的二进制表示方法结果就是1010(A)0001(1) 0010(2)1011(B)
。
需要注意的是:UTF是Unicode TransferFormat的缩写,UTF-8和UTF-16都是把Unicode码转换成程序数据的一种编码方式。
UTF-8
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码Unicode字符(尽管如此,2003年11月UTF-8被RFC 3629重新规范,只能使用原来Unicode定义的区域,U+0000到U+10FFFF,也就是说最多4个字节)。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
UTF-8的来历
UTF-8
的规范里充斥着这样神秘的句子:“第一个位元组由110
开始,接着的位元组由10
开始”,“第一个位元组由1110
开始,接着的位元组由10
开始”。
那么这到底是什么意思呢?为什么要这么做呢?
我们先从二进制说起。我们都知道,一个字节是由8
个二进制位构成的,最小就是0000 0000
,最大就是1111 1111
。那么一个字节所能表示的最多字符数就是2
的8
次方,也就是256
。对于26
个英文字母来说