QByteArray 轉 QString 及其失敗的原因


QByteArray轉QString

QByteArray轉QString,網上有很多的轉換方法。最方便得方法是以下這種方法:

QByteArray a;
QString str = QString(a);
qDebug()<<"str"<<str;

還有一種就轉換成char *型的:

QByteArray plaintext;
const unsigned char *m_plaintext = reinterpret_cast<const unsigned char*>(plaintext.data());
qDebug()<<"plaintext"<<plaintext;

這種方法最后打印即QDebug輸出的轉換結果都是一個空的值。

原因:

此時應該用DeBug調試模式看里 QByteArray 的數據,QByteArray 是一個二制的字符流 。如果你所看到的字符流如下圖一樣是以 “\0” 開頭的,然而在轉換過程中遇到 "\0" 這個字符串就會自動和結束了。同理,如果二進制的字符流中有 “\0” 也會自動結束,造成數據丟失。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM