误用
10 Dec 2016 | categories notesUCS-2 vs. UTF-16 vs. UNICODE
UNICODE
是一套编码集,表达了编号和现实世界使用的记号之间的对应关系。例如U+0020
对应空格(WHITESPACE),实际上你完全可以自己定义一套编码让0x00
对应空格。
UTF-16
和UCS-2
就不是那么好区分了。,UTF-16
是一套变长编码。世界上常用的绝大多数符号,在UTF-16
中都可以用2个字节表示。但是UTF-16
是变长的,也就是说,其他的一些字符,需要用4个字节表示。而UCS-2
呢,是一套定长编码,在UTF-16
的2个字节的部分,一一对应。UCS-2
定2个字节长。
实际上,UTF-16
的使用并不怎么广泛,实则应用广泛的是UCS-2
,世界上的大多数软件,都倾向于内码使用定长的,例如V8,HotSpot VM等。但是其实很少有人提及UCS-2
。严谨一点的,会称这些软件使用的是2-byte UTF-16
,其他人一般直接称它们用的是UTF-16
了,虽然他们自己可能心里清楚称呼的是UTF-16
中2个字节的那部分。
这个误会难以解除。你跟人解释的时候,如何保证别人知道什么是UCS-2
呢?
Ethernet 2 vs. 802.3
大家都知道数据链路层,网络层,传输层这些东西。大家也知道网络层常用的IP协议,传输层常用的TCP,UDP协议。那么,数据链路层一般用的什么协议?
在以太网中,很多人会说用的是”802.3协议”。然而,”IEEE 802.3”代表的其实是整个以太网的标准。以太网上最常用的封包方式,是Ethernet II
封装。
h5 vs. 手机上遵循HTML5规范的网页
这个没什么可说的了。