如何根据文件系统了解文件名的字符编码

use*_*422 7 filesystems filenames

我想知道文件系统中文件名的字符编码,以便在GUI中正确显示它们.

我该怎么做?

我想根据文件系统(FAT,NTFS,ext3等)得到不同的字符编码

谢谢

(我使用的是C++,但这个主题与语言无关)

Eug*_*its 5

NTFS是Unicode(UTF-16).exFAT也是Unicode.

原始FAT和fAT32使用OEM字符集(在MSDN上阅读更多信息).

在Linux和Unix上,filename可以包含除NUL之外的任何字节,并且未定义charater集.因此,每个应用程序决定使用哪一个.许多应用程序使用UTF8.在此问题中查看更多内容.

上述unix方法用于大多数文件系统(主要是因为"charset"概念在OS级别上比在存储级别上具有更多含义).您可以在此处检查有关文件名字符的FS功能和要求(表2第3列).