qt socket通信传递中文字符串怎么处理?
客户端:
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到数据库中。要怎样处理呢?服务端接受到的是乱码,数据库的添加语句也执行不了。
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到数据库中。要怎样处理呢?服务端接受到的是乱码,数据库的添加语句也执行不了。
...全文
相关推荐
qt与java之间socket通讯
总结,Qt与Java之间的Socket通信涉及了网络编程、JSON序列化和反序列化、多线程处理(特别是在Java中处理并发连接时)、以及错误处理等多个技术点。
Pipo 的 QT socket的进程间通信
**数据编码与解码**:为了在进程间传递复杂的数据结构,可能需要将数据序列化为字符串或二进制格式,如JSON、XML或自定义格式,并在接收端进行反序列化。4.
QT调用ZMQ,qt调用dll库文件,QT
这个场景中,我们将讨论如何在Qt环境中调用ZeroMQ(一种高效的消息传递库)并通过QJsonDocument处理JSON数据。
基于python和qt实现的聊天室
在网络传输过程中,通常采用UTF-8编码,确保不同语言的字符都能正确传递。综上所述,基于Python和Qt实现的聊天室是一个综合性的项目,涵盖了网络编程、图形用户界面设计、并发处理等多个知识点。
C#字符串加密解密源码,我还有相同加密方法的delphi、php、C#、QT、golang、java版本
在这个项目中,可能使用了AES或者类似的对称加密算法,因为它们适合大量数据的快速加密,并且对于支持中文字符的加密处理相对简单。AES加密过程通常包括以下步骤:1.


