Unicode与utf-8之间的区别

https://www.zhihu.com/question/23374078



计算机的巴比伦塔命题,国际标准化组织提出了Unicode(废了所有的地区性编码方案,重新搞一个包括了地球上所有文化、所有字母和符号 的编码!他们打算叫它”Universal Multiple-Octet Coded Character Set”,简称 UCS, 俗称 “unicode“。)。

随之也带来了两个问题:

如何才能区别unicode和ascii?计算机怎么知道三个字节表示一个符号,而不是分别表示三个符号呢?
第二个问题是,我们已经知道,英文字母只用一个字节表示就够了,如果unicode统一规定,每个符号用三个或四个字节表示,那么每个英文字母前都必然有二到三个字节是0,这对于存储空间来说是极大的浪费。
面向传输的众多 UTF (UCS Transfer Format)标准出现了,顾名思义, UTF-8 就是每次8个位传输数据。
UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度,当字符在ASCII码的范围时,就用一个字节表示,保留了ASCII字符一个字节的编码做为它的一部分,注意的是unicode一个中文字符占2个字节,而UTF-8一个中文字符占3个字节)。

Unicode符号范围 | UTF-8编码方式

(十六进制) | (二进制)
—————————————————————–
0000 0000-0000 007F | 0xxxxxxx

0000 0080-0000 07FF | 110xxxxx 10xxxxxx

0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx

0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx


作者:于洋
链接:https://www.zhihu.com/question/23374078/answer/69732605
来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。




「知」字的码位 U+77E5 属于第三行的范围

       7 7 E 5 0111 0111 1110 0101 二进制的 77E5-------------------------- 0111 011111 100101 二进制的 77E51110XXXX 10XXXXXX 10XXXXXX 模版(上表第三行)11100111 10011111 10100101 代入模版 E 7 9 F A 5

U+77E5 按照 UTF-8 编码为字节序列 E79FA5 的过程。


作者:邱昊宇
链接:https://www.zhihu.com/question/23374078/answer/24385963
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值