近日使用了python交互终端写程序,发现一个奇怪的现象。
使用windows记事本编写py输出简单的一句话:
#!/user/bin/python
# _*_ coding:GBK _*_
print "今朝有旧今朝醉?"
请忽略文字错误 ̄□ ̄||通过cmd运行如下:
将coding修改为UTF-8:
# _*_ coding:UTF-8 _*_
依然可以正常显示,因为UTF-8兼容GBK大多数字符,注意,这里的coding指的是文件的解码。
接下来使用IDLE来编辑这个py:
好,乱码来了:
为什么捏?难道记事本跟python的IDLE存在差异?首先想到的就是两者保存文件编码差异导致,先确定cmd用的是什么解码:
确定是GBK,再看一下记事本和IDLE保存的编码:
记事本:
IDLE:

在使用Python IDLE时遇到输出乱码问题,原因是IDLE默认保存为UTF-8编码,而记事本默认使用GBK编码。通过检查CMD编码发现为GBK。记事本以UTF-8无BOM保存文件能正常显示,但IDLE保存的UTF-8文件不带BOM,导致乱码。尝试设置IDLE编码为GBK后问题依旧。最终发现记事本在特定情况下会添加BOM头,这在Python编译时引发错误。建议使用专业文本编辑器并保存为UTF-8无BOM格式,避免类似问题。
最低0.47元/天 解锁文章
613

被折叠的 条评论
为什么被折叠?



