Unicode 汉字编码表

1 Unicode编码表 

 Unicode只有一个字符集,中、日、韩的三种文字占用了Unicode中0x3000到0x9FFF的部分  
  Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符, 比如汉字"经"的编码是0x7ECF,注意字符编码一般用十六进制来 表示,为了与十进制区分,十六进制以0x开头,0x7ECF转换成十进制 就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制, 2的16次方等于65536,所以UCS-2最多能编码65536个字符。 编码从0到127的字符与ASCII编码的字符一样,比如字母"a"的Unicode 编码是0x0061,十进制是97,而"a"的ASCII编码是0x61,十进制也是97, 对于汉字的编码,事实上Unicode对汉字支持不怎么好,这也是没办法的, 简体和繁体总共有六七万个汉字,而UCS-2最多能表示65536个,才六万 多个,所以Unicode只能排除一些几乎不用的汉字,好在常用的简体汉字 也不过七千多个,为了能表示所有汉字,Unicode也有UCS-4规范,就是用 4个字节来编码字符,不过现在普遍采用的还是UCS-2,只用两个字节来 编码

为什么有了UTF-16, 还会有UTF-8呢? 干嘛搞这么多复杂的编码呢? 一种编码不很好么? 答案是为了节省带宽, 因为早期互联网带宽非常昂贵.

下面需要一些基础知识

a. 1 bit = 2种两种可能性
b. 1 byte = 8 bit
c. 1 byte = 2 ^ 8 次方 = 256 种可能性
d. 1 byte 可以给256个字符编码
e. byte = 字节

ok了, 接着往下讲

人们希望在一套系统里面能够容纳所有字符(Unicode), 但是一个字节, 2^8次方(256)个字符是不够的. 所以就有了 UTF-16, 2^16 (65536)个字符, 这样就够了. 一个字符对应一个数字.

因为大部分互联网资料是西文(英法德意西), 而这些西文用128个字符可以表示完, 人们想出一种办法, 具体看 @邱昊宇 的标识法.

结果是西文字符只用1 byte表示, 其他不常见的字符(中日韩阿拉伯文等), 用2-4 byte 表示.

因为早期互联网上大量都是英文和其他西文内容, 所以这样编码, 是有助于减少文件大小, 从而减少需要的带宽的. 而因为UTF-8在早期网页的通用性, 所以现在大家都沿用了下来.

从现在来看, 在今天图片语音视频占据了大量流量的互联网, UTF-8这个东西好像意义也不大了.

一句话,utf8是对unicode字符集进行编码的一种编码方式

你可能感兴趣的:(常识)