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传送中文的主要内容,如果未能解决你的问题,请参考以下文章