之前写的epoll测试例子中,只测试了英文字符的发送和接收,对于中文发送时,收到的是乱码,本文主要针对中文乱码的情况进行处理。
工具/原料
qt
epoll
TCP/UDP Socket调试工具
问题现象
1、服务器端为linux的epoll开发,在收到信息后,通过qDebug打印出来。客户端使用TCP/UDP Socket调试工具,发送中文:你好
2、单步调试查看收到的buf信息为十进制的196、227、186、195,对应的十六进制为C4 、E3、BA、C3对应的是发送中文的 gbk编码
3、通过qDebug显示出来的结果是乱码
解决接收中文乱码
1、既然知道了收到的中文是gbk编码,就可以通过编码转换,来显示中文
2、qDebug可以正常显示中文了
qt发送中文
1、通过qt来发送中文时,需要将发送的消息转换成GBK编码,然后再发送
2、运行结果如下
QUrl上传ftp中文文件
1、使用QUrl上传文件时,如果文件名是中文,也需要进行相应的修改这样上传到服务器上,中文名称才可以正常显示