需知:
1.在python2默认编码是ASCII, python3里默认是unicode
2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间
3.在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string
#Python2,utf-8转gbk # -*- coding:utf-8 -*- #声明当前文件的字符编码 import sys print(sys.getdefaultencoding()) #打印当前程序的字符编码 msg = "你好" unicode_msg = msg.decode("utf-8") #先把utf-8解码变成unicode gbk_msg=unicode_msg.encode("gbk") #然后把Unicode编码成gbk print(unicode_msg) #简写 unicode_msg = msg.decode("utf-8").encode("gbk") print(unicode_msg)
#python3 utf-8 gbk互转 # -*- coding:utf-8 -*- import sys print(sys.getdefaultencoding()) #打印当前字符编码 msg = "你好" unicode_msg = msg.encode("gbk") #Python3程序默认的编码就是UNcode,所以不需要解码可以直接转成GBK print(unicode_msg) utf8_msg = unicode_msg.decode("gbk").encode("utf-8") #在py3中encode,在转码的同时还会把string 变成bytes类型, # 此时打印变量内容只会出现一个编码串,不会显示字符串内容 print(utf8_msg) utf8_msg1 = utf8_msg.decode("utf-8") #decode在解码的同时还会把bytes变回string print(utf8_msg1)