脚本宝典收集整理的这篇文章主要介绍了python疑问3:头痛的字符编码,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
一提到字符编码,我身边的好多朋友都挥手,拜拜!字符编码就像一个烙印深深地印在心底,成为心病。
今天就来啃一啃这老骨头。
我们遇到过哪些编码?
ASCII,ANSI,GB2312,GBK,Unicode,UTF-8,MBCS,JIS,KS等等,为什么会出现这么多不同的编码,他们之间又有什么不同呢?
我们可以看看字符编码的历史,就能解决心中的疑惑了
由图可见,计算机当时从美国诞生,所以美国在设置字符编码的时候,并未考虑其它国家。所以当计算机在全球范围内进行覆盖时,各国纷纷制定属于本国的专属字符编码方案。由于各个方案互相并不兼容,所以便有Unicode一统天下。
知道了每个字符编码的由来,我们再看python中编码疑问就很好解释了。
两者之间关系为:
b = '好'
print(type(b)) //<class 'str'>
c = b.encode('utf-8')
print(type(c)) //<class 'bytes'>
c = b.encode('ASCII')
print(type(c)) //报错,ASCII不支持中文
d = c.decode('utf-8')
print(type(d)) //<class 'str'>
d = c.decode('gb2312')
print(type(d)) //报错,解码格式和编码格式不同
注意事项:
- 一般编码和解码格式保持一致,即使用utf-8编码后,也要用utf-8解码。否则可能会报错
- 含有中文的字符编码时不能采用ASCII,因为它不支持中文
习惯:虽然python3去除了python2字符编码的很多诟病,但是一些习惯还是保持下去
譬如头文件添加编码注释
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
如果问python2中怎么办呢?
弃坑吧!
以上是脚本宝典为你收集整理的python疑问3:头痛的字符编码全部内容,希望文章能够帮你解决python疑问3:头痛的字符编码所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。