通俗易懂的解释字符集和字符编码

字符集(相当于接口)

  • 字库表
    包含所有的字符库。
  • 码点code ponit
    标识字库表中的每个字符的位置。(码点是不能直接使用的,还需字符集编码的实现)。
  • 例如
    • ASCII字符集
    • Unicode字符集

字符编码(相当于实现类)

定义了字符集的码点的规则。

  • ASCII编码(ASCII字符集的一种实现)
    一个字节,包含8bit,共256种。0~127表示默认字符,128~255是扩展字符。
  • Unicode编码(unicode字符集的一种实现)
    一个英文等于两个字节,一个中文(含繁体)等于两个字节。 兼容ASCII编码,英文前一字节用00000000填充。
  • utf-8编码(unicode字符集的一种实现)
    • 是一个可变长度的默认为8bit=1byte的码点的存储方式。
    • 单字节的字符,字节的第一位设为0,对于英语文本,UTF-8码只占用一个字节,和ASCII码完全相同;
    • n个字节的字符(n>1),第一个字节的前n位设为1,第n+1位设为0,后面字节的前两位都设为10,这n个字节的其余空位填充该字符unicode码,高位用0补足。
    1字节 0xxxxxxx 
    2字节 110xxxxx 10xxxxxx 
    3字节 1110xxxx 10xxxxxx 10xxxxxx 
    4字节 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 
    5字节 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 
    6字节 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 。
    复制代码

一种字符集的可能对应仅一种或多种的字符编码实现。

unicode字符集:
  • utf-8 编码
  • utf-16 编码
  • utf-32 编码
  • ...
GBK2321字符集:
  • GBK2321编码

参考

转载于:https://juejin.im/post/5ad075766fb9a028e014e524

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值