概述
Qt TcpSocket 传递数据乱码显示
由于正在学习 Qt 网络编程
TcpSocket
通信,为了能更好的体验与理解TcpSocket
,为此租用了腾讯云的轻量级服务器。在服务器上部署好 Qt 环境进行通讯发现,中文一直会出现乱码问题,现我已经我的解决我的问题,记录当时所遇到的问题以及解决方案。
-
服务器上qtcreator 编译器显示中文乱码
环境为 Ubuntu 18.04
解决方案:Ubuntu的中文乱码问题 [完美解决],这一篇博客直接解决了服务器中文乱码问题
-
采用 TcpSocket 传递信息,但在服务器端接收到的中文为乱码
采用
tcpSocket->write(QString("...").toLatin1())
方式传递数据,在服务器端接收到的中文乱码显示为 ‘’?"采用
tcpSocket->write(QString("...").toLocal8Bit())
方式传递数据,在服务器端接收到的中文乱码显示为 ‘’@"// 解决方案1 //在发送端设置编码格式 QByteArray Ary = "会出现乱码吗"; QTextCodec *tc = QTextCodec::codecForName("GBK"); tcpSocket->write(tc->fromUnicode(Ary)); //在服务器接收端设置编码格式 QByteArray t = sock->readAll(); QTextCodec *tc = QTextCodec::codecForName("GBK"); qDebug() << tc->toUnicode(t); //接收端和发送端的编码需要一致
// 解决方案2,此方案中中文一定要为QString类型 //发送端 QByteArray by; by.append(QString("....")); by.append(QTime::currentTime().toString()); tcpSocket->write(by); //接收端 QByteArray k = sock->readAll(); QString L = k;//输出时需要转化为QString,才能正常显示 qDebug() << L;
最后
以上就是朴实小熊猫为你收集整理的Qt TcpSocket 传递数据乱码显示的全部内容,希望文章能够帮你解决Qt TcpSocket 传递数据乱码显示所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复