问题描述
使用vscode中使用jupyter notebook执行bash命令时,不管是中文还是英文,输出均是乱码
但是使用vscode的terminal执行同样的命令又没有问题,系统自带的cmd也没有问题。
最终解决后的效果如下:
## 问题分析
默认vscode会选择使用cmd执行shell, 但是通过vscode的设置修改好像只能影响到vscode的termial. 另外vscode设置项中的编码已经是utf-8了。
因此简单看修改配置好像不起作用。
在jupyter notebook中直接执行 !chcp
可以看到默认的cmd code page, 发现是936. 参考:https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/chcp
这篇博文给出了解决方案,每次在vscode 的jupyter notebook执行shell命令前,先执行 !chcp 65001
, 但是每次都要执行,实在太麻烦。
解决方法
修改计算机的注册表:
修改完成后,重启vscode, 然后在执行bash命令,发现乱码就没有了。唯一的缺陷是,不知道我的为什么第一次执行会乱码,然后再次运行shell命令就没有了。