C++实现剔除不能识别的非ASCIII、非中文字符
生活随笔
收集整理的這篇文章主要介紹了
C++实现剔除不能识别的非ASCIII、非中文字符
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
需求的提出:
最近做了一個三維顯示控件,顯示客戶提供的三維模型文件,但不知道為何,有奇形怪狀的字符出現,如下:
用戶說要剔除這些字符,采用基于Qt的C++編程實現如下:
// 剔除不能識別的非ASCIII及非文字字符及括號 0X4E00到0X9FFC為常用漢字的Unicode編碼范圍 QString CHelper::rejectInvalidChar(const QString& qsSourcce) {QString qsNewText(qsSourcce);// 剔除非ASCIII及非文字字符及括號for (int i = qsNewText.length() - 1; i >= 0; --i){QChar p = qsSourcce[i];if (!(0 <= p && p <= 127) && !(0X4E00 <= p && p <= 0X9FFC)){qsNewText.replace(QString(p), QString());}}return qsNewText; }需要說明的是:數字、常用的符號、英文字符都是標準的ASCIII字符即ASCIII碼為:0到127,常用簡體中文的Unicode編碼范圍為:0X4E00到0X9FFC,這里只考慮數字、常用的符號、英文字符、中文,如果要考慮其它文字,如:俄文,則把俄文對應的Unicode范圍加上即可。不同國家的文字的Unicode編碼請參考網上的文章,這樣的文章很多。
總結
以上是生活随笔為你收集整理的C++实现剔除不能识别的非ASCIII、非中文字符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解压命令tar zxvf中zxvf分别是
- 下一篇: 码云最火爆开源项目 TOP 50,你都用