自从sublime使用了virtualenv模块,在控制台运行总显示中文乱码,例如下面一段代码
import os,sys
print(os.name)
s=os.system('ipconfig')
content=os.popen('opconfig').read()
print(content)
会显示
用cmd小黑框输出就是正常的,如下
参考了两篇文章
第一篇https://www.jianshu.com/p/a0c8e8f22467
讲的是非virtualenv的环境下解决中文乱码问题,主要就是修改.sublime-build文件
解决办法是:
在sublime text3的菜单栏选择 Tools->Build System->New Build System...,然后在打开的文件中输入下面的代码,把原有内容替换。
新建一个sublime-built文件,将里面的内容替换成如下:
{
"cmd": ["python","-u","$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "cp936"
}
如果你已经创建好了符合自己需求的sublime-build文件,就直接修改,加上”encodeing“:“cp936”
这个文件一般是放在:
你的Sublime安装路径\Packages\User
如果没有上面的路径,则放在这个路径:
C:\Users\你的用户名\AppData\Roaming\Sublime Text 3\Packages\User
但是我在文件中并没有找到我的python+Virtualenv环境于是我参考了https://blog.csdn.net/weixin_39712016/article/details/111906792
解决办法是:找到我们插件安装的位置:
找到插件安装的地方:C:\Users{Username}\AppData\Roaming\Sublime Text 3\Installed Packages ==>注意改变一下Username为你自己的,Users在你系统也可能叫做“用户”,AppData这个目录是隐藏的,需要你查看隐藏文件。
里面就可以找到一个叫做Virtualenv.sublime-package的文件,这个就是Virtualenv插件的包。
在名称后面加上.zip换成压缩包的格式就可以打开更改了,(这个包的修改方式竟然如此特殊),无需解压直接打开里面的Python+Virtualenv.sublime-build文件(可以用sublime打开呀),上文中在这个文件里加了"env": {"PYTHONIOENCODING": "utf8"},变成了:
{
"env": {"PYTHONIOENCODING": "utf8"},
"target": "virtualenv_exec",
"shell_cmd": "python -u \"$file\"",
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
就可以显示中文了但是我尝试后还是不行,于是我去掉了“env”那一行,加上了“encoding": "cp936"最终变成了
{
"shell_cmd": "python -u \"$file\"",
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"target": "virtualenv_exec",
"selector": "source.python",
"quiet": true,
"encoding": "cp936"
}
可以了