我想将 QStrings 转换为文件名。由于我希望文件名看起来干净,我想用下划线替换所有非字母和非数字。下面的代码应该做到这一点。
#include <iostream>
#include <QString>
QString makeFilename(const QString& title)
{
QString result;
for(QString::const_iterator itr = title.begin(); itr != title.end(); itr++)
result.push_back(itr->isLetterOrNumber()?itr->toLower():'_');
return result;
}
int main()
{
QString str = "§";
std::cout << makeFilename(str).toAscii().data() << std::endl;
}
但是,在我的计算机上,这不起作用,我得到一个输出:
�_
寻找解释,调试告诉我QString("§").size()
= 2 > 1 = QString("a").size()
。
我的问题:
- 为什么 QString 使用 2 个 QChars 表示“§”?(已解决)
- 你有解决方案
makeFilename
吗?对中国人也有用吗?