2014-01-07 193 views
1

就我而言,我修改FAT32 U盤爲一體的卷標「USB磁盤「(與中國字符)與Windows系統。顯示fat32 usb磁盤的卷標?

然後我插上U盤在Ubuntu的(13.04),

ls /dev/disk/by-label 

顯示 「USB \ X20 \ XB4 \ XC5 \ XC5 \ XCC」。

,或者我使用udev規則自動掛載外接USB硬盤,在埃beaglebone。

IMPORT{program}="/sbin/blkid -o udev -p %N" 
ENV{ID_FS_LABEL}!="", ENV{mount_point}="/media/%E{ID_FS_LABEL}" 
ACTION=="add", RUN+="/bin/mkdir -p %E{mount_point}", RUN+="/bin/mount -o iocharset=utf8 /dev/%k %E{mount_point}" 

我得到「/ media/USB_ _ _」裝載點。

如何獲得正確的卷標?

測試一個NTFS和EXT3 USB磁盤是好的。

回答

0

FAT,VFAT和FAT32似乎並不使用unicode文件名 - 至少不是我所理解的。他們可以使用來自「OEM」代碼頁(我不完全瞭解)的大多數字符,但即使如此,仍有許多字符無法顯示。

正是在這樣的微軟頁解釋: http://msdn.microsoft.com/en-us/library/windows/desktop/dd317748%28v=vs.85%29.aspx

「NTFS存儲文件的Unicode名稱相比之下,年長的FAT12,FAT16和FAT32文件系統使用OEM字符集的詳細信息。 ,請參閱代碼頁

「創建FAT文件的非Unicode應用程序有時必須使用標準C運行時庫轉換函數來在Windows代碼頁字符集和OEM代碼頁字符集之間進行轉換。使用文件系統函數的Unicode實現,不需要執行這樣的翻譯。

「您的應用程序可以使用通用字符串類型,如用於字符串的Windows數據類型中所述,應用程序還可以使用通用函數原型,使用函數原型約定中描述的技術對於通用字符串類型或通用函數原型,應用程序可以使用單個源文件來編譯Unicode或非Unicode版本。爲了實現這一目的,應用程序爲編譯Unicode時不調用的函數提供宏。系統中,特殊文件名稱字符是:'\','/','。','?'和'*'。在OEM代碼頁上,這些特殊字符位於ASCII字符範圍內(0x00到0x7F)。它們的Unicode等價物是2字節形式的相同值,從0x0000到0x007F。

注意在日語操作系統上使用的Windows代碼頁和OEM代碼頁字符集包含日元符號(¥)而不是反斜線(\)。因此,日元符號是NTFS的禁止字符和FAT文件系統在將Unicode映射到日文代碼頁時,WideCharToMultiByte和其他轉換函數將反斜線(U + 005C)和普通的Unicode日元符號(U + 00A5)映射到同一個字符。應用程序通常不應允許Unicode字符串中的字符U + 00A5可能被轉換爲FAT文件名。有關更多信息,請參閱安全注意事項:國際功能。「

此維基百科頁面: http://en.wikipedia.org/wiki/Comparison_of_file_systems 使它更清晰一點

」除了值0-31的任何字節,127(DEL)和「 * /?:<> \ | +,。; = [](低位az存儲爲AZ)。使用VFAT LFN除NUL以外的任何Unicode「

希望這有助於。