[title]遇到的问题[/title]


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

[title]解决方案1[/title]

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

[title]解决方案2[/title]

这个方案就是我采用的方法,找到vscode的arduino拓展的安装目录,找到util.js这个文件,以我电脑上的为例:
[cc lang="text"]
C:\Users\Administrator\.vscode\extensions\vsciot-vscode.vscode-arduino-0.2.29\out\src\common\util.js
[/cc]
找到215到225左右的代码,找到如下的代码:
[cc lang="js"]
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";
}
}
[/cc]
对代码进行多行注释:
[cc lang="js"]
/**
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";
}
}
**/
[/cc]
保存文件,重启vscode,此时编译的输出信息,中文不再乱码。

Last modification:February 17th, 2021 at 09:11 pm
如果觉得我的文章对你有用,请随意赞赏