如何在USB HID报告中发送重音字符和unicode

如何在USB HID报告中发送重音字符和unicode,unicode,arduino,keyboard,usb,hid,Unicode,Arduino,Keyboard,Usb,Hid,我正在android上构建一个蓝牙HID键盘应用程序,我一直在寻找在我的键盘报告中发送重音字符(a、è、è,…)和Unicode的最佳方法 我已经有了一个工作报告映射/描述符。实际上,和没有使用id,但似乎能够以某种方式发送它,我不明白它为什么能工作。ASCII映射将a映射到0x14,但在HID规范中它应该是0x04 所以 有人能解释一下为什么在链接项目中为'a'发送0x14而不是0x04 有没有比模拟特定于操作系统的快捷方式更好的方法来获取unicode字符 实际上,我知道键盘发送键码是为

我正在android上构建一个蓝牙HID键盘应用程序,我一直在寻找在我的键盘报告中发送重音字符(
a
è
è
,…)和Unicode的最佳方法

我已经有了一个工作报告映射/描述符。实际上,
没有使用id,但似乎能够以某种方式发送它,我不明白它为什么能工作。ASCII映射将
a
映射到0x14,但在HID规范中它应该是0x04

所以

  • 有人能解释一下为什么在链接项目中为'a'发送0x14而不是0x04

  • 有没有比模拟特定于操作系统的快捷方式更好的方法来获取unicode字符


  • 实际上,我知道键盘发送键码是为了通知按键的位置(主机负责将键码映射到字符),ascii码是一种已经映射到字符的代码。也许我错过了一些让我无法理解库中发生了什么的东西。欢迎来到键盘布局和字符编码的噩梦!“A”(0x04)的USB使用代码仅适用于美式英语(QWERTY)键盘布局。在法语(AZERTY)键盘上,“a”键和“Q”键位置是交换的……因此法语键盘上的“a”是USB用法0x14,而在美国键盘上是USB用法0x04。USB规范确实有一个Unicode页面,但它在很大程度上依赖于操作系统支持(对此我一无所知)。谢谢@aja,现在它变得更清晰了(我不知道为什么我没有想到这一点)。你知道网上有没有列出所有USB使用交换(特别是键盘按键代码)的资源?