qt下通过socket传送中文

Posted okstill

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt下通过socket传送中文相关的知识,希望对你有一定的参考价值。

zz


1.在main函数里我之前就加了一句QTextCodec::setCodecForTr( QTextCodec::codecForLocale() );
现在再加一句QTextCodec::setCodecForCStrings( QTextCodec::codecForLocale() );这句是会对QString类型的变量进行自动转换成本地的设置类型(一般都是中文哈)。

2.在发送方要把字符串转换成字节序:

// "GB18030" || "GBK"  || "GB2312"这三种都可以转换中文,其他的用在这里不是乱码就是程序崩溃。
QTextCodec *code= QTextCodec::codecForName("GBK");
QString strtest = "你好Test";
QByteArray bytest = code->fromUnicode( strtest );

传输时时用QByteArray类型传送的。

3.在接收方把接收到得QByteArray类型的变量通过QString的构造函数转换成QString类型
QByteArray bylog = byEventParam.mid( str.length() );// 接收到的字符串
QString strlog1( bylog );

以上是关于qt下通过socket传送中文的主要内容,如果未能解决你的问题,请参考以下文章

socket传送二进制流的一些总结

Window下UDP(socket)接和收数据案例

QT socket网络通信

QT创建TCP Socket通信

QT程序socket的readyRead信号不触发

11.Socket网络编程