qt下tcp消息中,如何发送和接收中文字符

2025-04-19 01:46:06

之前写的epoll测试例子中,只测试了英文字符的发送和接收,对于中文发送时,收到的是乱码,本文主要针对中文乱码的情况进行处理。

工具/原料

qt

epoll

TCP/UDP Socket调试工具

问题现象

1、服务器端为linux的epoll开发,在收到信息后,通过qDebug打印出来。客户端使用TCP/UDP Socket调试工具,发送中文:你好

qt下tcp消息中,如何发送和接收中文字符

2、单步调试查看收到的buf信息为十进制的196、227、186、195,对应的十六进制为C4 、E3、BA、C3对应的是发送中文的 gbk编码

qt下tcp消息中,如何发送和接收中文字符

3、通过qDebug显示出来的结果是乱码

qt下tcp消息中,如何发送和接收中文字符

解决接收中文乱码

1、既然知道了收到的中文是gbk编码,就可以通过编码转换,来显示中文

qt下tcp消息中,如何发送和接收中文字符

2、qDebug可以正常显示中文了

qt下tcp消息中,如何发送和接收中文字符

qt发送中文

1、通过qt来发送中文时,需要将发送的消息转换成GBK编码,然后再发送

qt下tcp消息中,如何发送和接收中文字符

2、运行结果如下

qt下tcp消息中,如何发送和接收中文字符

QUrl上传ftp中文文件

1、使用QUrl上传文件时,如果文件名是中文,也需要进行相应的修改这样上传到服务器上,中文名称才可以正常显示

qt下tcp消息中,如何发送和接收中文字符
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢