码迷,mamicode.com
首页 > 编程语言 > 详细

python蛋疼的编码decode、encode、unicode、str、byte的问题都在这了

时间:2017-09-08 11:46:11      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:技术   代码   ascii   code   开始   style   encoding   编程语言   gbk   

  相信很多人和我一样,被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蛋疼的编码decode、encode、unicode、str、byte的问题都在这了

标签:技术   代码   ascii   code   开始   style   encoding   编程语言   gbk   

原文地址:http://www.cnblogs.com/peter1994/p/7493273.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!