Arduino在vscode中输出乱码解决方法

2020年2月15日

2 条评论 1.15k 个文字

遇到的问题


由于以前做arduino程序都是在基于Linux的deepin操作系统下进行,对utf-8的编码支持比较好,没有出现过乱码的问题,最近由于些许原因换成了win7操作系统,在配置完arduino和vscode后发现在vscode中编译arduino程序,输出框会乱码,在网上找了很久没有有效的解决方案,这里记录一下。

解决方案1

此方案未经测试,换回arduino1.8及以前的版本即可。

解决方案2

这个方案就是我采用的方法,找到vscode的arduino拓展的安装目录,找到util.js这个文件,以我电脑上的为例:

text
1
C:\Users\Administrator\.vscode\extensions\vsciot-vscode.vscode-arduino-0.2.29\out\src\common\util.js

找到215到225左右的代码,找到如下的代码:

javascript
1
2
3
4
5
6
7
8
9
10
11
        if (os.platform() === "win32") {
            try {
                const chcp = childProcess.execSync("chcp.com");
                codepage = chcp.toString().split(":").pop().trim();
            }
            catch (error) {
                outputChannel_1.arduinoChannel.warning(`Defaulting to code page 850 because chcp.com failed.\
                \rEnsure your path includes %SystemRoot%\\system32\r${error.message}`);
                codepage = "850";
            }
        }

对代码进行多行注释:

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
        /**
        if (os.platform() === "win32") {
            try {
                const chcp = childProcess.execSync("chcp.com");
                codepage = chcp.toString().split(":").pop().trim();
            }
            catch (error) {
                outputChannel_1.arduinoChannel.warning(`Defaulting to code page 850 because chcp.com failed.\
                \rEnsure your path includes %SystemRoot%\\system32\r${error.message}`);
                codepage = "850";
            }
        }
        **/

保存文件,重启vscode,此时编译的输出信息,中文不再乱码。

文章评论(2)

  • JamesDuark

    Thanks for delivering like superb subject matter.

    2020年4月23日
  • adu

    可以用呢 谢谢

    2020年8月4日
  • 我来讲两句~