我正在尝试从udev库获取USB设备标签。但是当标签不是采用UTF8编码时,我会遇到问题。
USB设备以前在Windows上已格式化,并且具有FAT32文件系统。 USB名称为“РФПАЦУ”(出于测试目的,我使用西里尔字母(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设备标签的方法?