这几天一直在这个python windows 中文乱码作斗争,心力交瘁……
我的vscode版本: 1.37.1,python 2.7
在文件位置使用 Git bash here,执行文件没有问题
但是到了vscode中,同样是使用 git bash 却输出乱码,在cmd中也一样。
接着我测试了在python 命令行和git bash中,输出中文,显示却又是正常的:
所以我就在想,有没有可能是python 读取执行文件的时候,window用 gbk 的编码格式拿给python执行,那python当然是拿到什么执行什么咯,所以才会出现上面的问题。
于是去网上找解决方案:
方案一:
使用cmd,修改cmd的字符设置为utf8
chcp 65001
但是:另外开一个cmd就失效了,每次使用cmd都要设置,太麻烦
方案二:
在vscode 的 “文件”--“首选项”--“设置”, 然后在setting.json中修改设置,添加一行:
"terminal.integrated.shellArgs.windows": ["/K chcp 65001 >nul"]
cmd生效了,每次打开都会自动设置,输出也正常了。
但是:我设置的另一个git bash 每次启动都会报错启动失败。
方案三:
在输出的字符串后加入解码和编码:
print 'hello python!我是中文我是中文'.decode('utf-8').encode('cp936')
这种也是唯一 一种我在vscode 里使用 git bash 不会报乱码的办法。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
尝试过的无效的设置:
1、在vscode settings.json 中,加入一行:
"files.autoguessEncoding":true
2、设置git config
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8
export LESSCHARSET=utf-8
3、在中文字符串前加一个u
print u"hello python!我是中文我是中文"
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
因为权限和系统的原因,未做测试的方案:
1、修改 git config 配置: