刚接触python,写了个程序,想打包成exe以便其他机器可以运行,但是,总是会乱码!搞了一晚上,还是没能解决!
按照这个对cmd进行修改之后,还是会出现其他问题
想问下大家,不知道有没有一个终极的解决办法可以一劳永逸的!
目的:方便python写的程序能在其他机器运行
谢谢了~
补充
Python也有GUI吧,不知道使用界面来替代CMD可以吗,这样是不是就能解决了呢?
刚接触python,写了个程序,想打包成exe以便其他机器可以运行,但是,总是会乱码!搞了一晚上,还是没能解决!
按照这个对cmd进行修改之后,还是会出现其他问题
想问下大家,不知道有没有一个终极的解决办法可以一劳永逸的!
目的:方便python写的程序能在其他机器运行
谢谢了~
补充
Python也有GUI吧,不知道使用界面来替代CMD可以吗,这样是不是就能解决了呢?
乱码问题在跨平台下一直是头疼的问题。以下一些原则可以让该问题最小化:
下面的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)。问题彻底解决。
1 回答9.5k 阅读✓ 已解决
2 回答5.1k 阅读✓ 已解决
2 回答3.5k 阅读✓ 已解决
3 回答4.4k 阅读
2 回答2.4k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
简单的一句话就是:操你妈的微软,操你妈的
cmd
!因为微软的技术落后,国际化和本地化的很多本来应该很简单的事情,最后变得非常复杂。详细的你可以看看资料。网上对CP936代码页、
cmd
不支持utf-8,以及Windows需要设置系统编码的抱怨简直披天盖地。说件往事。我曾经试图用Bitvise SSH Client去连接Linux主机。这个SSH软件本身不错,SFTP/SSH/Tunnel/终端4合一,并且带自动保存密码、公私钥认证,相当全功能。但就是因为他调用的是
cmd.exe
的图形外壳去做终端,结果造成了连接到Linux主机上根本配不上UTF8编码,再骂一次微软之后忍痛抛弃了啊。我的建议是:
cmd
的一个好办法。因为我们如果把用户交互从文字终端的泥潭中拽出来,那么一切问题也就都不存在了。cmd
的完全的替代品——不要追求等效了,要完全替代(因为cmd
就算不考虑图形前端,自己本身也不是UTF8)。我推荐直接安装cygwin环境,带上python开发的软件包。把程序先全用Unicode搞定了,最后再去零散对付杂七杂八的其他编码,这才是营生之道。