可爱的编码——ASC、Unicode、UTF-8、GBK

字符集

ASCII

ASC编码是现今最通用的 单字节 编码系统,包含英文字母、数字、特殊字符等。

它的最高位称作奇偶校验位,用来校验传输过程中编码是否出现错误。

  • 奇校验 字节中1的个数为奇数,如果不是则最高位置1
  • 偶校验 字节中1的个数为偶数,如果不是则最高位置1

每个地区都可能有不同的字符需要编码成二进制串,所以为了提供一个统一的字符集,让全世界都无障碍使用,unicode诞生了,它为每一个字符都提供一个独一无二的二进制串。

Unicode

Unicode为 每种语言 中的 每个字符 设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

Unicode仅仅规定了每个字符码位,并没有规定如何存储、传输它们。因此出现了许多编码规则,用于unicode编码的传输、存储,最常见的就是UTF-8与GBK。

编码

UTF-8

UTF-8是基于Unicode最通用的国际编码。每个字符长度为 一个字节四个字节。英文字母为1个字节,汉字为3个字节。支持大小端。

编码格式为:

0xxxxxxx    # 0000-007F 
110xxxxx 10xxxxxx   # 0080-07FF 
1110xxxx 10xxxxxx 10xxxxxx  # 0800-FFFF  
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx  # 10000-1FFFF 
GBK

GBK也是基于Unicode的编码,是中国编码,固定每个字符长度为 两个字节,英文字母与汉字以最高位区分。

1xxxxxxx xxxxxxxx  # 汉字
0xxxxxxx xxxxxxxx  # 字符

显然,GBK与UTF8之间需要通过Unicode来进行转换。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值