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 );

posted on 2016-05-20 22:15  okstill  阅读(1020)  评论(0编辑  收藏  举报

导航