【发布时间】:2009-10-29 06:47:25
【问题描述】:
以下代码不知何故未能注意到名称中包含非 ASCII 字符(特别是西里尔字符)的任何文件:
for (int path = 1; path < argc; path++) {
QFileInfo fi(argv[path]);
if (fi.isDir()) {
QDir dir(argv[path], "", QDir::LocaleAware, QDir::AllEntries);
qDebug() << dir.entryList();
QDirIterator it(QString(argv[path]), QDirIterator::Subdirectories);
while (it.hasNext()) {
it.next();
qDebug() << it.fileInfo().absoluteFilePath();
/* Processing; irrelevant in the context of the question */
}
}
}
我到底做错了什么?我应该如何处理 QDir 和 QDirIterator 以使它们知道西里尔文文件名?
系统区域设置为en_US.UTF-8。
更新:在 Windows 上,一切正常。
【问题讨论】: