qt socket通信传递中文字符串怎么处理?
雨嫣然 2013-01-04 04:23:20 客户端:
ui->plainTextEdit(文本编辑器)里边有中文英文还有日期,相当于日志文件。
// 不是简单的“中文”字符串,是放在QString变量里的,转换成QByteArray后就是另外一种乱码。。。。
QString str = ui->plainTextEdit->toPlainText( );
QByteArray byData;//要发送给服务器端的数据包
QByteArray byToken = QString( "FutureInternet" ).toAscii( );
QByteArray byBody = "select log table";
// 通过这个转换似乎丢了些数据。还是乱码
QString text = QString::fromLocal8Bit( (const char *)&str, str.length() );
qDebug() << text << endl;
byBody.append( text );
quint32 nLength = byToken.length( ) +
sizeof ( quint32 ) +
byBody.length( );
nLength = htonl( nLength );
byData.append( byToken );
byData.append( ( const char* ) &nLength,
sizeof ( quint32 ) );
byData.append( byBody );
clientThread->PostDataEvent( byData );
现在要把这个中文字符串write到服务器端,然后把这些数据insert到数据库中。要怎样处理呢?服务端接受到的是乱码,数据库的添加语句也执行不了。