编码问题
Python3 的编码:
name = "中国" #unicode print(name.encode("utf-8")) print(name.encode("gbk")) #编码,会把uniocde转成相应编码的同时,把字符变成bytes print(name) print(type(n="gb2312") #默认以utf-8解释 print(f.read())
Python2 的编码:
# -*- coding:utf-8 -*- name = "中国" #utf-8 格式的编码 print "utf-8",len(name) # print [name.decode("utf-8")] # #你现在是什么编码, print "unicode",len(name.decode("utf-8") ) # #你看到的并不是uinicode , 你看到的是unicode-->你的终端屏幕的编码格式 gbk = name.decode("utf-8").encode("GBK") #写要转成的目标编码 print gbk print len(gbk.decode("GBK").encode("gb2312"))
注意:
Python2的str数据是bytes数据,Unicode数据是Unicode编码后二进制数据。
Python3的str数据是Unicode数据,bytes数据是bytes数据。
Python3将字节和字符分开处理了。使其不得混用
Python2可以将字节和字符一起处理。使其可以一起混用。
------- END ------