以前在一個有關網絡通訊模塊的項目中,遇到了有關字符串截取的問題。網絡
定義一個發送某個信息的幀協議。其中一部分是定長的字符串,假定爲30個字節大小,多餘字節補0;字符串
解析過程:方法
獲取要解析的字符串通信
截取須要的字符串:協議
QString str = QString::fromUtf8(data + x, 30);項目
這個解析方法是錯誤的。這個就得到了一個固定大小的字符串(30字節),而字符串比較大小會比較字節大小,margin
而且0在字符串中是不顯示的,這就會致使一個不明顯的錯誤。網絡通信
正確的解析方法是:字符
QString str = QString::fromUtf8(data + x);錯誤
只要須要解析的字符串大小在30字節以內,而且多餘字節補0的狀況下,該方法就能正確解析所須要的字符串。