python蛋疼的编码decode、encode、unicode、str、byte的问题都在这了
2017-09-08 10:20
851 查看
相信很多人和我一样,被python蛋疼的编码问题纠缠不清,比如下面的
私以为出现这种错误的原因还是对一些基本的编解码概念不够熟悉,下面就说说我的理解:
首先python刚出来的时候unicode还没有一统江湖,期间很多代码和程序压根就是直接用ascii编码,反正代码都是英文写的,而且当时那个年代写代码一般都是说英文的,那就无所谓啦,人家用的爽才不care那么多,后来互联网开始兴起,全球各个地方的人都需要了,中国这边的话自己搞了套gbk(gb2312)编码,同时该编码包含了ascii,毕竟ascii就那么1个byte8bit的编码,随便都能包含进去了,后来unicode一统江湖后,才算解决了编码问题,但是很多应用软件和编程语言诞生年代久远,所以遗留了一些编码问题,这也就是为什么python、mysql等等常出现编码问题的原因了。
python2中默认不指定的情况下使用的编码是ascii编码!!!
首先 “str” 本质上是字符串,用print直接打印出来人类可读,byte本质是字节,用8位0和1的序列来表示的,为机器可读。
由于python2默认的encoding是ascii 所以很明显,当一个中文的unicode想encode的时候就会出现中文无法用ascii编码的的错误,毕竟ascii只是unicode的一个子集。
反之也是
相关文章推荐
- Python编码相关问题 Unicode UTF-8 encode() decode()
- python 字符串编码 str和unicode 区别以及相互转化 decode('utf-8') encode('utf-8')
- 数据库乱码问题 & Python 编码问题(Unicode 的 encode、decode 相互转换 )
- 数据库乱码问题 & Python 编码问题(Unicode 的 encode、decode 相互转换 )
- python中的编码问题unicode, encode, decode
- python的str,unicode对象的encode和decode方法, Python中字符编码的总结和对比bytes和str
- python编码问题 decode('unicode-escape')
- python 编码问题 UnicodeDecodeError: ‘utf8’ codec can’t decode byte 0xb4 in position 0: invalid start byt
- 字符串加密,解密,利用 sun.misc.BASE64Decode类的 encode(byte)编码和decodeBuffer(str)解码
- python的str,unicode对象的encode和decode方法
- python的str,unicode对象的encode和decode方法, Python中字符编码的总结和对比bytes和str
- python的str,unicode对象的encode和decode方法
- python的编码问题|encode(编码)decode(解码)
- python编码问题——解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX
- 由python2.7的UnicodeEncodeError说Python的编码问题
- Python字符串的encode与decode研究心得乱码问题解决方法(很多的编码问题都可以从此得出答案)
- 如何解决Python中的UnicodeEncodeError编码错误问题
- python的str和unicode以及编码的问题
- Python3 解决编码问题: `UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 10: ille
- python编码问题——解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX