問題タブ [blkid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
240 参照

c++ - USB デバイス ラベルをデコードする方法

udev ライブラリから USB デバイス ラベルを取得しようとしています。しかし、ラベルが UTF8 エンコーディングでない場合に問題が発生します。

USB デバイスは以前に Windows でフォーマットされており、FAT32 ファイル システムを使用しています。USB名は「РФПАЦУ」です(テスト目的でキリル文字を使用しました(CP866コードページ))。USB デバイスのプロパティを取得するには、次のコマンドを実行します。

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

答えは次のとおりです。

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 を unhex にすることはできません。

ID_FS_LABEL_ENC のエンコーディングを調べる方法はありますか? または、USB デバイスの正しいラベルを取得する方法はありますか?