• 3949阅读
  • 1回复

[提问]关于发送中文字符的问题 [复制链接]

上一主题 下一主题
离线vincent0401
 
只看楼主 倒序阅读 楼主  发表于: 2009-09-20
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
准备写一个发送端发送中文,接收端接收后存入文件的程序,但接收到的中文一直是乱码,知道是编码转换问题,但不知道怎么解决,特来求助!
发送端:
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说说怎么解决啊!
离线lish0001

只看该作者 1楼 发表于: 2009-09-20
我的空间:http://hi.baidu.com/%B7%C9%CF%E8%5F%C6%D1%B9%AB%D3%A2
快速回复
限100 字节
 
上一个 下一个