编码集UTF-8、GBK的区别

Unicode编码集ASCII、utf-8、gbk

Unicode

Unicode是Java、Python等语言中的符号集,它相当于一个词典,将全世界的字符映射为一个数字,转换成二进制后存储在字节中。后文中提到的ASCII、GBK等编码集都是Unicode中具体实现方式。

ASCII编码集

ASCII是计算机发展初期,使用英语的科学家设计了一种编码集,使用1字节存储信息且只包含128个字符,每个字节的首个bit都为0;例如“,”对应ASCII为44,字节码为00101100;

GBK编码集

GBK是中国人设计的一套编码集,包含2万多个中文字符且支持ASCII码,使用两个字节编码一个字符,具体转换表百度,为了便于操作系统识别字节码是使用GBK或ASCII编码,GBK编码的首个字节开头都是1(1xxxxxxx xxxxxxx),例如(熊–0xD0DC);

UTF-8编码集

UTF-8是Unicode的一种主流实现方式,可以适用于全球的语言,为了兼容性和内存利用率,采取不定长的编码方式,如果表示ASCII字符,则使用1字节(0xxxxxxx)与初始的ASCII码没有区别不进行转码;如果表示中文字符,使用3个字节表示(1110xxxx 10xxxxxx 10xxxxxx),首个字节的3个1表明使用3个字节解码成一个字符,而对于10开头的字节码与ASCII严格区分开,并不能单独被解码成任何字符,这样就实现了操作系统可以分辨出应该选取哪几个字节解码成字符

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值