我想知道文件系统中文件名的字符编码,以便在 GUI 中正确显示它们。
我该怎么做?
我想我会根据文件系统(FAT、NTFS、ext3 等)得到不同的字符编码。
谢谢
(我在 C++ 中工作,但这个主题与语言无关)
我想知道文件系统中文件名的字符编码,以便在 GUI 中正确显示它们。
我该怎么做?
我想我会根据文件系统(FAT、NTFS、ext3 等)得到不同的字符编码。
谢谢
(我在 C++ 中工作,但这个主题与语言无关)
在 Linux 中运行以下命令:locale | egrep "LANG=" | 切 -d 。-f 2
在类 Unix 系统上,文件名的编码不是在文件系统级别设置的,而是在用户环境中设置的。例如,UTF-8 是 Ubuntu 中的默认设置。
在 Windows 上,默认编码是 CP-1252(AKA ISO-8859-1 或 Latin-1),但 FS 通过 UTF-16 编码使用 Unicode。请参阅http://en.wikipedia.org/wiki/Filename。
但如果您使用 Qt,您可以使用 Qt Creator 构建以下内容,结果是当前用户编码名称。
#include <QTextCodec>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
Q_UNUSED(argc); Q_UNUSED(argv);
QTextCodec* tc = QTextCodec::codecForLocale();
cout << "Current names text codec: " << tc->name().data() << endl;
return 0;
}