准备写一个发送端发送中文,接收端接收后存入文件的程序,但接收到的中文一直是乱码,知道是编码转换问题,但不知道怎么解决,特来求助!
发送端:
QString str0 = "北京";
QByteArray array =str0.toUtf8();
udpsocket.writeDatagram(array,QHostAddress::Broadcast,45454);
接收端:
while(udpsocket.hasPenddingDatagrams()){
QByteArray datagram;
datagram.resize(udpsocket.pendingDatagramSize());
udpsocket.readDatagram(datagram.data(0,datagram.size());
QFile file("1.txt");
if(file.open(QIODEVICE::WriteOnlly))
return 1;
QString str1 = QString ::fromUtf8(datagram.data());
QTextStream out(&file);
out<<"receive:"<<str1<<"\n";
}
后来发送端尝试了下面的方式,还是乱码,没办法了。。。。
QTextCodec *codec = QTextCodec::codecForName("GBK");
QString array =codec->formUnicode("中国");
udpsocket.writeDatagram(array.toLatin1(),QHostAddress::Broadcast,45454);
望有想法的xdjm说说怎么解决啊!