遇到的问题
由于以前做arduino程序都是在基于Linux的deepin操作系统下进行,对utf-8的编码支持比较好,没有出现过乱码的问题,最近由于些许原因换成了win7操作系统,在配置完arduino和vscode后发现在vscode中编译arduino程序,输出框会乱码,在网上找了很久没有有效的解决方案,这里记录一下。
解决方案1
此方案未经测试,换回arduino1.8及以前的版本即可。
解决方案2
这个方案就是我采用的方法,找到vscode的arduino拓展的安装目录,找到util.js这个文件,以我电脑上的为例:
C:\Users\Administrator\.vscode\extensions\vsciot-vscode.vscode-arduino-0.2.29\out\src\common\util.js
找到215到225左右的代码,找到如下的代码:
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";
}
}
对代码进行多行注释:
/**
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,此时编译的输出信息,中文不再乱码。