【发布时间】:2016-02-25 19:39:58
【问题描述】:
考虑到这个 USB 字符串描述符:
#define USB_PRODUCT_STRING_DESCRIPTOR_LENGTH (34U)
#define USB_DESCRIPTOR_TYPE_STRING (0x03U)
uint8_t UsbProductString[USB_PRODUCT_STRING_DESCRIPTOR_LENGTH] = {
USB_PRODUCT_STRING_DESCRIPTOR_LENGTH,
USB_DESCRIPTOR_TYPE_STRING,
'C', 0x00U,
'O', 0x00U,
'M', 0x00U,
'P', 0x00U,
'O', 0x00U,
'S', 0x00U,
'I', 0x00U,
'T', 0x00U,
'E', 0x00U,
' ', 0x00U,
'D', 0x00U,
'E', 0x00U,
'V', 0x00U,
'I', 0x00U,
'C', 0x00U,
'E', 0x00U,
};
有什么方法可以以更容易阅读的方式来表示它吗?可能使用u"" 字符串语法?
【问题讨论】:
-
发布
USB_DESCRIPTOR_TYPE_STRING定义。 -
这些是宽字符 (
wchar_t)、某种 Unicode 编码,还是只是带有交错零的 ASCII? -
@e0k 因为
wchar_t可能不是 2uint8_t它看起来不像宽字符。也许是 UTF16-LE? László Monda - 请提供更多细节。 -
@chux 刚刚发布了
USB_DESCRIPTOR_TYPE_STRING定义。 -
@e0k 看起来 USB 使用 UTF-16LE。
标签: c string unicode byte concatenation