编码格式

GBK比GB2312老一点;GBK是全字符,所有都包含;台湾用BIG-5;美国ANSI显示英文及其字符;世界上第一台计算机是冯.诺依曼发明的;
乱码:类型不一致;网页里有默认编码,但传的不一致
Unicode:全世界的文字都可以用unicode表示;不会用于传输
如果你的网页产生乱码会是什么原因?unicode(UTF-8)在微软里定义是一样的
传递的数据和存储的编码是不一样的;网页会设置一种编码
UTF-8默认兼容ASCII编码,是变长存储,没有办法通过位移去寻找下一个字符
UTF-16 2个字节,存储的时候分大小端44在前11在后,服务器端和客户端要统一 UTF-32 4个字节,没有大小端也没有变长,但是较长也不方便

python操作的都是str类型(unicode)在文件中保存的类型bytes类型

unicode-----通过encode函数---->bytes类型
bytes类型----通过decode函数----》str类型(unicode)

题:把gbk的bytes类型转换为utf-8的bytes类型
byte类型和编码名字有关系
编码之间的转换要通过Unicode进行中间的转换
GBK(bytes)–> utf-8(bytes)?通过chardet检测,并尝试用一行代码解决。

python3默认是utf-8编码,
查看默认编码:

>>> import sys
>>> sys.getdefaultencoding()
'utf-8'

如果申明为GBK #encoding=GBK 要用ANSI保存
解码就是变成Unicode,编码就是变成bytes

如何查看使用的是什么编码?
先安装chardet
pip install chardet

>>> chardet.detect("光荣之路自动化测试培训".encode("gbk"))
{'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值