2013-03-26 58 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