关于编码那些事

一、初始编码

    1、计算机的传输和储存都是用二进制的,(只能识别0和1)

    2、单位:

               8位bit == 1个字节(byte)

              1byte    1024byte==1KB

              1KB      1024KB  ==1M

               ........

               1GB     1024GB==1TB

   3、编码历史

        最早美国使用ASCII码:1个字节8位,表示字母、数据、特殊字符,2个字节代表一个中文不够

        响应全球推送Unicode:四个字节代表一个中文,其他不变(四个字节浪费资源)

              Unicode升级utf-8:      三个字节代表一个中文,其他不变      

                        国产GBK : 两个字节代码一个中文,其他不变

二、编码应用

      1、各编码之间二进制是不能互相识别的,会乱码

      2、文件储存、传输不能是Unicode,只能是utf-8/16,GBK/GBK2312、ASCII等

      3、python3中内存中是用Unicode编码的

      4、文件储存是用byte类型(即utf-8或GBK),字符串前加 b就表现成byte类型(编码方式:utf-8或GBK)

            英文加B后显示的byte类型,人可以看明白,中文显示的是二进制,可以跟着二进制字节码来看出是用的

            utf-8(3个字节)还是GBK(2个字节)

 

三、编码需知

      1.在python2默认编码是ASCII, python3里默认是unicode

      2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间

      3.在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string

       

 

            

                                   

                

转载于:https://www.cnblogs.com/mys6/p/10547649.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值