You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arduino调用Keyboard.print输出双引号变成@的问题如何解决

问题原因

该问题由Arduino Keyboard库的键盘布局默认设置和运行端系统的键盘布局不匹配导致:
Arduino官方Keyboard库默认使用美式英文(US QWERTY)键盘布局发送按键键码,若你运行PowerShell的系统采用的是其他键盘布局(如英式键盘、区域定制键盘布局等),US布局下对应双引号"的键码,在你的系统布局中正好对应@字符,就会出现双引号被替换为@的问题。

解决方法

方案1:调整代码适配现有布局(推荐,无需修改系统配置)

不要在Keyboard.print的字符串中直接使用转义双引号\",改为手动模拟双引号对应的按键组合即可。以大多数中文区常用的键盘布局为例,双引号对应「左Shift+单引号」的按键组合,将原出错的代码段替换为以下内容即可:

// 替换原出错的Keyboard.print行
Keyboard.print("echo ");
// 输出第一个双引号
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.print('\'');
Keyboard.releaseAll();
// 输出证书头内容
Keyboard.print("-----BEGIN CERTIFICATE-----");
// 输出第二个双引号
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.print('\'');
Keyboard.releaseAll();
// 输出命令剩余部分
Keyboard.print(" >> text.txt");

如果运行后输出仍有偏差,可以直接查询你当前系统键盘布局下双引号对应的按键组合,调整上述按键模拟逻辑即可。

方案2:修改系统键盘布局

将运行PowerShell的系统的默认键盘布局临时切换为美式英文(US QWERTY),原有代码无需修改即可输出预期结果。

内容的提问来源于stack exchange,提问作者Nawad Aga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:24:09