我有一些反转 QString 的简单代码。
const QString reverse_qstring(const QString& str_in)
{
QString out;
Q_FOREACH(const QChar c, str_in) {
out.push_front(c);
}
return out;
}
当我使用非 ASCII 字符从命令行输入文本时,事情按预期进行:
"¿como estás?" : "?sátse omoc¿"
但是,当我进行以下单元测试(使用 QTestLib)时:
QCOMPARE(reverse_qstring(QString("¿como estás?")), QString("?sátse omoc¿"));
我得到:
FAIL! : program::test_qstring() Compared values are not the same
Actual (reverse_qstring(QString("??como est??s?"))): ?s??tse omoc??
Expected (QString("?s??tse omoc??")): ?s??tse omoc??
有任何想法吗?