0

我正在尝试从 udev 库中获取 USB 设备标签。但是当标签不是 UTF8 编码时,我遇到了问题。

USB 设备之前已在 Windows 上格式化并具有 FAT32 文件系统。USB 名称是“РФПАЦУ”(我使用 Cyrillic 进行测试(CP866 代码页))。要获取 USB 设备属性,我运行以下命令:

sudo /sbin/blkid -o udev -p /dev/sdd1

答案如下:

ID_FS_LABEL=______
ID_FS_LABEL_ENC=\x90\x94\x8f\x80\x96\x93

根据https://bbs.archlinux.org/viewtopic.php?id=197582

ID_FS_LABEL contains plain ascii, with hex-escaped and any valid utf8 characters but all whitespaces are replaced with '_' , while in ID_FS_LABEL_ENC all potentially unsafe characters are replaced by the corresponding hex value prefixed by '\x'.

我不能只取消十六进制 ID_FS_LABEL_ENC,因为要读取的字节数是未知的。

有没有办法找出 ID_FS_LABEL_ENC 的编码?或者一种获取 USB 设备正确标签的方法?

4

0 回答 0