以前在一个有关网络通讯模块的项目中,遇到了有关字符串截取的问题。网络
定义一个发送某个信息的帧协议。其中一部分是定长的字符串,假定为30个字节大小,多余字节补0;字符串
解析过程:方法
获取要解析的字符串通信
截取须要的字符串:协议
QString str = QString::fromUtf8(data + x, 30);项目
这个解析方法是错误的。这个就得到了一个固定大小的字符串(30字节),而字符串比较大小会比较字节大小,margin
而且0在字符串中是不显示的,这就会致使一个不明显的错误。网络通信
正确的解析方法是:字符
QString str = QString::fromUtf8(data + x);错误
只要须要解析的字符串大小在30字节以内,而且多余字节补0的状况下,该方法就能正确解析所须要的字符串。