问问题
5034 次
4 回答
9
在我的理解中没有这样的内置功能。
大约 1-2 年前,我提出了一个用于 QString/QChar 的 isAscii() 方法来包装低级 Unix isacii() 和相应的 Windows 函数,但被拒绝了。你可以这样写:
bool isUnicode = !myString.at(3).isAcii();
如果你能说服维护者,我仍然认为这将是一个方便的功能。:-)
除此之外,恐怕您需要自己检查 ascii 边界。您可以自己执行以下操作:
bool isUnicode = myChar.unicode() > 127;
有关详细信息,请参阅文档:
这是一个过载功能。
于 2014-01-07T20:38:43.010 回答
9
如果您需要纯 7 位ASCII,最简单的方法是检查每个字符的代码 ( QChar::unicode() ) 是否低于 128 。
于 2014-01-07T20:38:22.533 回答
3
要在没有循环的情况下以紧凑的方式编写它,您可以使用正则表达式:
bool containsNonASCII = myString.contains(QRegularExpression(QStringLiteral("[^\\x{0000}-\\x{007F}]")));
于 2017-09-03T20:44:59.407 回答
0
这对我有用:isLetterOrNumber()
ot_id += QChar((short) b.to_ulong()).isLetterOrNumber() ? QChar((short) b.to_ulong()) : QString("");
于 2021-09-24T02:56:30.087 回答