在Notepad++中新建一个文件命名为str_encode.py,我们想写像这样的代码:
print("你好,祝你学习愉快!")
会发现,Notepad里出现乱码不能正确显示汉字,这是为什么呢?
print("雿末")
原来Notepad++默认python的源码文件是ANSI编码的,需要在Notepad++中设置:编码==>编译成UTF-8编码。
在python中可以放置一条注释,表示这个文件是UTF-8编码的。
# -*- coding: utf-8 -*- #str_encode.py print("你好,祝你學習愉快!")
但是当我们在cmd里执行str_encode.py时,又输出了乱码(我当前的学习环境是繁体XP所以上面的汉字是繁体字)。
这又是什么情况呢?看样子我们的代码还需要修改。把我们的代码修订如下:
#-*- coding: utf-8 -*- #str_encode.py msg = "你好,祝你學習愉快!" print(msg.decode("utf-8").encode("950"))
msg是unicode编码的需要decode("utf-8")解码为UTF-8的编码后使用encode(“950”)编码为950代码也就是繁体big5编码。
在cmd边框右键==>属性,查看cmd的编码方式。
查看默认编码方式
>>>import sys
>>>sys.getdefaultencoding()
ascii
>>>sys.stdout.encoding
cp950
参考资料: