python开发中编码相关问题

Python2的解释器默认以 ascii码的编码方式进行编码,由于ASCII码只占一个字节126个包含英文和特殊字符,不能正常解码,所有要在文件开头声明编码方法‘# codeing:utf-8’

python2中的 str是以byte类型存储的

 

python3中解释器默认以utf-8的编码方式进行编码和解码,所有不存在中文编码错误

 

len('ab')  >> 2

len(''中国'')  >> 2

str类型在以字符个数计算

 

len('ab'.encode('utf-8'))  >> 2

len('中文'.encode('utf-8'))  >>  3

 

ascii 编码只解决了英文编码问题

unioncode 解决了全球文字统一编码问题,但是所有字符都占有四个字节

utf-8 为了节省空间,而且保留之前ascii编码的文件系统设计的一种变长的编码规则,英文和特殊字符继续保持ascii编码占一个字符,中文在utf-8编码中一个文字占有三个字节

 

转载于:https://www.cnblogs.com/maxiaohei/p/9026948.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值