查阅了大量资料,大致整理了如下几种方法:
一、每个文件单独设置输出代码,如pytho格式的,1.py中加入:
# coding: utf-8
import io, sys
#改变标准输出的默认编码
sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
此时,运行Run Code即可在【输出】Output中看到中文正常结果。
2、或者在下面【终端】Terminal 窗口直接输入
python 1.py
这样也能正常显示结果。我一般都是用UTF8编写文件的,如果终端中还出现乱码,可在【终端】Terminal 窗口输入chcp 65001修改为UTF-8方式显示输出即可。
二、后来,发现可能是安装了Code Runner,导致网络上教程的修改,没有影响到Code Runner的配置,每次点Run Code来运行时,默认是在【输出】Output显示的,此时总结了两种办法都可以(二者不能同时使用):
1、方法一:左下角--设置--输入关键词"run code config"--找到"Run In Terminal"--勾选"Whether to run code in Integrated Terminal",这样,我们可以把代码放到 VS Code 内置的 Terminal 来运行,就能解决输出乱码和支持输入了。参考教程
2、方法二:左下角--设置--输入关键词"run code config"--找到"Executor Map"下面的"Edit in settings.json"点击--把"python": "python -u"修改为"python": "set PYTHONIOENCODING=utf8 && python -u",这样结果在【输出】Output将会中文正常显示。不过,这种方法只是针对python生效,对于其他的还要单独设置,不如方法一更好。参考教程
三、最后的最后,发现重启一下电脑,无论是php、python、node,所设置的变量都生效了,之前只是在命令行下运行了set path=c然后退出,再重新打开其他命令行,变量能生效,但vscode这个有点奇怪,当我重启电脑后,才能生效,并且之前设置的解决【输出】Output存在中文乱码,也自动解决了。现在我的设置是:
1、Code Runner中,没有勾选"Run In Terminal"--勾选"Whether to run code in Integrated Terminal"。
2、设置--功能--终端--使用integrated(vscode)自带的终端,下面的settings.json全部清空为最初状态。
3、只有系统变量,名称:PYTHONIOENCODING,值:utf8,还保留着,估计也没什么用处。
总之,重启电脑,一切乱码消失,一切原来run code出错,都消失了。解决中文乱码,主要是文件编码与输出窗口保持一致就行,据了解,vscode输出是utf8格式,因而每个文件都保存为utf8格式,一般不会出错。