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

相关文章
相关标签/搜索