在使用Qt显示字符时,有时候我们显示文字时会带一些特殊的unicode字符,例如:
"\u200B[胜利][好奇]" 这里的\u200B其实是一个长度的unicode字符,在界面上是显示不了的,有时还会占用一个位置影响后面的字符显示,那么如何使用把这个字符过滤掉了,
QRegExp("[\u200B]")这样子是没有效果的,在Qt里应该这样写
QRegExp("[\\x200B]")
具体示例如下
QString FilterSpecialCharacters(QString &message)
{
QString org1 = QStringLiteral("源字符=============== text= ");
QString new1 = QStringLiteral("过滤后=============== temp= ");
qDebug() << org1 << text << " length= " << text.length();
QString temp = message;
temp.remove(QRegExp("[\\x200B]"));//删除特殊字符
qDebug() << new1 << temp << " length= " << temp.length();
}
运行结果: