【发布时间】:2021-07-19 09:24:40
【问题描述】:
我正在 Android 上构建蓝牙 HID 键盘应用程序,但在我的键盘报告中,我坚持使用发送重音字符 (à,è,é,...) 和 Unicode 的最佳方式.
我已经有一个工作报告地图/描述符。在Usage Page 中没有à 的使用ID,但this arduino project 似乎能够以我无法弄清楚它为什么起作用的方式发送它。 ASCII 映射有 a 映射到 0x14,但在 HID 规范中它应该是 0x04。
所以,
-
谁能解释一下为什么在链接的项目中为 'a' 发送 0x14 而不是 0x04 有效?
-
有没有比为ALT Codes 模拟操作系统特定的快捷方式来获取 unicode 字符更好的方法?
【问题讨论】:
-
其实我知道keycode是键盘发送来通知按键的位置(主机负责将keycode映射到一个字符),而ascii已经是一种code映射到一个字符。可能是我错过了一些让我无法理解该图书馆正在发生什么的事情。
-
欢迎来到键盘布局和字符编码的噩梦! “A” (0x04) 的 USB 使用代码仅适用于美国英语 (QWERTY) 键盘布局。在法语 (AZERTY) 键盘上,“A”键和“Q”键的位置是交换的……所以法语键盘上的“A”是 USB 使用 0x14,但在美式键盘上是 USB 使用 0x04。 USB 规范确实有一个 Unicode 页面,但它在很大程度上取决于操作系统支持(我对此一无所知)。
标签: unicode arduino keyboard usb hid