2013-03-26 84 views
0

我想用QTcpSocket傳輸文件。連接運行良好,但我的問題是當我嘗試在文件上記錄接收到的字節。當我打開文件時,在文件的開頭有一些奇怪的字符。這些角色是什麼?使用QTcpSocket傳輸文件時出現奇怪的字符

+0

分析更多我意識到文件始終比原始文件多4個字節。獨立如果是txt文件或二進制文件。 – vanz 2013-03-26 03:36:20

+0

如何讀取文件,將其寫入套接字,從套接字讀取並將其寫回文件?沒有這部分代碼,我們無法幫到你。如果您只是將文件讀作QByteArray並將其寫入爲QByteArray,則不會有編碼開銷 – 2013-03-26 08:41:43

回答

1

我的問題是我將整個對象保存在我的文件中。當我們在流中使用運算符>>時,Qt序列化整個對象併發送它。如果您只想寫入文件的字節或任何您想要的內容,則需要使用writeRawData或通過char *傳遞字節的寫入方法。

:)

0

他們可能正在描述文件文本的編碼。如UTF-8 v。ISO ###標準。如果您將文本塊設置爲正確的編碼,那麼這些字符很可能會消失。

這裏開始的地方,瞭解它:

http://en.wikipedia.org/wiki/Unicode_and_HTML

http://qt-project.org/doc/qt-4.8/qstring.html#toUtf8

希望有所幫助。

+0

分析更多我意識到文件總是比原始文件多4個字節。如果是txt文件或二進制文件,則是獨立的 – vanz 2013-03-26 03:36:39

+0

它是一個描述緩衝區大小的整數嗎? – phyatt 2013-03-26 04:13:34