python2与python3编码的区别
相信让很多人苦恼的就是python2的编码问题了,但是还好,python3中所有的编码都成了utf-8了,再也不用再顶部加上
#--*--coding:utf-8 --*-- 这个了
编码史
先说一下ASCII码:他有8位,发明他的人天真的以为8位就可以表示所有的东西,但是随着时代发展,8位明显不足,这时候就出现了万国码(Unicode)编码,它至少用16位来表示东西,但是对于数字来说,16位明显显的有点多余了,出现了空间浪费问题,为了解决这一问题,utf-8(gbk等)编码随之而产生了,都是在Unicode的基础上优化存储方式,减少了空间的浪费问题。
那么对于utf-8 和gbk这样一同级语言怎样相互转换呢?
没错!utf-8与gbk都是对Unicode的基础上优化而来的,所以他俩可以通过Unicode作为中间媒介从而达到编码转化的目的
python2和python3的编码和解码
python2中由于所有的都是Unicode编码所以存在Unicode向utf-8的编码(encode)以及utf-8到Unicode的解码(decode)过程但是在python3中由于都是utf-8 的编码形式,所以只存在编码过程;但是在编码之间的转化如utf-8 到gbk的过程内部也是通过Unicode来转化的