玩蛇网提供最新Python编程技术信息以及Python资源下载!

Windows下Python解决乱码问题应该怎么做

刚接触python,写了个程序,想打包成exe以便其他机器可以运行,但是,总是会乱码!搞了一晚上,还是没能解决!
按照这个对cmd进行修改之后,还是会出现其他问题

python 文件里的中文在 windows 下运行乱码

想问下大家,不知道有没有一个终极的解决办法可以一劳永逸的!

目的:方便python写的程序能在其他机器运行

谢谢了~

补充

Python也有GUI吧,不知道使用界面来替代CMD可以吗,这样是不是就能解决了呢?

简单的一句话就是:操你妈的微软,操你妈的cmd!因为微软的技术落后,国际化和本地化的很多本来应该很简单的事情,最后变得非常复杂。

详细的你可以看看资料。网上对CP936代码页、cmd不支持utf-8,以及Windows需要设置系统编码的抱怨简直披天盖地。

说件往事。我曾经试图用Bitvise SSH Client去连接Linux主机。这个SSH软件本身不错,SFTP/SSH/Tunnel/终端4合一,并且带自动保存密码、公私钥认证,相当全功能。但就是因为他调用的是cmd.exe的图形外壳去做终端,结果造成了连接到Linux主机上根本配不上UTF8编码,再骂一次微软之后忍痛抛弃了啊。

我的建议是:

乱码问题在跨平台下一直是头疼的问题。以下一些原则可以让该问题最小化:

下面的python头很常见吧:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

由于Linux系统是UTF8编码,所以直接print "你好"就可以直线显示而不会乱码。
而中文Windows系统是GBK编码,所以直接print "你好"就会乱码,解决方法如下:

print u"你好".encode("GBK")

看了链接中所给的解决方案,我怀疑是终端的编码修改为UTF8了,所以直接print u"你好"正常显示。默认的终端编码是和系统编码一致的,这时就需要encode为对应的编码来显示。

(发现了segmentfault的markdown编辑器的一个bug:

下面的python头很常见吧:
#!/usr/bin/env python
# -- coding: utf-8 --

预览时代码区是正常的,可保存后查看却是普通文本,必须空一行才能显示为代码。)

下面这个方法可以彻底解决!
1、确保py文件是UTF-8编码存档的。
2、在CMD窗口输入CHCP 65001 回车。(65001是win系统UTF-8的代码)
3、选择字体Lucida Console。说明:如果想在CMD显示更多的字体,在注册表(路径:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionConsoleTrueTypeFont)中添加就好了。添加的字体需要是定宽的(fixed-width)。问题彻底解决。

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd19990.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月24日 - 20时14分12秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules