发送的时候先保存到一个QByteArray里面,然后打印出来,看有没有错,然后发送,接受的时候也保存到一个QByteArray里面,打印出来 ,看有没有错。 如果发送的时候就错了,明显就已经转错了。 如果接受的时候错了,有可能没接受完全,也有可能丢包了,你比较下接受的时候大小和发送的时候是不是一样的,不一样重新发送。
在确定收到的数据和大小没问题,只是编码问题是可以这样解决:
首先是工具->选项中设置为utf-8和如果有则添加
#include "widget.h"
#include <QApplication>
#include <QTextCodec>
int main(int argc, char *argv[])
{
QTextCodec *codec=QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForLocale(codec);
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
然后对于字符串像 “XXXXXX” 可以用
QStringLiteral( “XXXXXX” )解决,并且在编译之前需要在记事本中打开保存。