void sort() { QStringList stringList; stringList<<"白日"<<"博客"<<"标题"<<"代码"<<"福利"<<"大家"<<"你好"; QMap<QByteArray,QString> barryMap; QTextCodec* codec = QTextCodec::codecForName("GBK"); if(codec) { for(int i=0; i<stringList.count(); i++) { QString text = stringList.at(i); if( isContainsHz(text)) { QByteArray barr = codec->fromUnicode(text); barryMap.insert(barr, text); } else { barryMap.insert(text.toLatin1(), text); } } } stringList.clear(); stringList = barryMap.values(); } bool isContainsHz(const QString text) { return text.contains( QRegExp("[\\x4e00-\\x9fa5]+") ); }