Qt txt文本中獲取字符串的問題

QT對txt文本進行讀寫通常是採用QFile和QTextStream結合使用,在此不細說,主要說一下讀取txt文本的注意事項。由於txt文本中有中文也有英文還有數字,要準確得到須要的字串可就要多一個心眼了。由於在使用QString對文本讀取時,使用的是Unicode編碼,這時,一個漢字佔2個字節,一個字母佔一個字節,一個數字佔一個字節。html

 以如下代碼做爲示例:web

QString str("個人csdn博客");
str.size();   //返回值8
str.left(3);  //返回值   「個人c」
str.mid(2,3); //返回值   「csd」

從以上能夠看出,QString中的成員函數計算的是字符的個數函數

 當使用QByteArray時,編碼

QString str("個人csdn博客");
QbyteArray ba=str.toAscii();
str.size();   //返回值12
str.left(4);  //返回值   「個人」
str.mid(2,4); //返回值   「的cs」

 能夠看出,QByteArray中的成員函數計算的是字節的個數spa

 因此,在須要準確得到txt中的字符時,要注意txt的格式,根據txt的格式使用相應的方法獲取須要的字符串。.net

 結束語:其中的原因本人也還未搞清楚,可能與qt中的編碼有深厚的關係,有時間再來分析,可參見以下連接:code

 http://zhidao.baidu.com/question/352325355.htmlorm

 http://blog.csdn.net/brave_heart_lxl/article/details/7186631htm

相關文章
相關標籤/搜索