参考连接:https://blog.csdn.net/w1573007/article/details/77199733
参考链接:https://www.cnblogs.com/Matthew-Lu/p/8384346.html
参考链接:https://www.cnblogs.com/testlife007/p/5163507.html
××××××××××××××
decode(“utf-8”):将utf-8解码为unicode,
encode(“utf-8”):将utf-8编码为utf-8.
××××××××××××××××××××××××××××××××××
乱码原因: 因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件。但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串当然是乱码了。
解决方法:
在控制台打印的地方用一个转码就ok了,打印的时候这么写:
print myname.decode('UTF-8').encode('GBK')
也可以这样:
if (name['算法类型'.decode('UTF-8').encode('GBK')] == "YANBAN"):
print(name['算法类型'.decode('UTF-8').encode('GBK')] + "is YANBAN" )
输出为“YANBAN is YANBAN” 。
比较通用的方法应该是:
import sys type = sys.getfilesystemencoding()
print myname.decode('UTF-8').encode(type)