字符编码总结

在编程中碰到乱码是经常发生的事情,今天特地抽出时间弄懂这个编码,填补这个大坑。

简单说点个人感受,计算机技术的发展都是有因有果,存在的就是合理的,新技术的更新迭代肯定是为了弥补旧技术的不足

今天就用简单的因果关系来阐述一下我对编码的认识

————————————————————————————————————————————————————————

1.为了处理英文字符,产生了Ascii编码(American Standard Code fro Information Interchange)

    0-31,127是控制字符

    32-126是可显示字符

Ascii码在128-255之间的被称为扩展的Ascii码
 

2.为了处理中文字符,在Ascii编码的基础上产生了Gb2312编码(表示6000多个汉字)

由于汉字太多了包括繁体和各种字符,产生量GBK编码(包括Gb2312)

由于中国是个多民族国家,为了表示各个民族的字符,把GBK编码扩展成为GB18030编码

汉字的这些编码都属于双字节字符集

 

3.为了处理各国的字符,产生了Unicode编码(统一码,万国码),规定所有的字符由最少两个字节来处理

为了提高Unicode的传输和存储出现了两个标准UTF-8UTF-16

每次分别传输8位和16位,是unicode的一种实现形式

UTF-8编码是对Unicode编码的压缩和优化,将所有的字符进行分类:Ascii码中的内容用一个字节保存

欧洲的字符用两个字节保存,东亚的字符用3个字节保存

 unicode编码向下兼容gb2312 gbk编码

 

4.总结:编码的发展过程说明了一个道理:合久必分,分久必合

下图是gbk和utf-8转换的过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值