Я пытаюсь получить метку USB-устройства из библиотеки udev. Но у меня проблема, когда метка не в кодировке 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-устройства?