如图
我client发送部分代码是:
void Widget::send()
{
QString ss="hello server你好,服务器!!!";
tcpSocket->write(ss.toStdString().c_str(),strlen(ss.toStdString().c_str()));
//QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
//tcpSocket->write(ss.toUtf8());
// QString ss="hello server - 你好,服务器!!!";
// QByteArray dateSend = ss.toLocal8Bit();
// tcpSocket->write(dateSend);
}
server端接收:
void Widget::dataReceived()
{
while(m_pSocket->bytesAvailable())
{
QByteArray vTemp;
//vTemp = vTemp.to
vTemp = m_pSocket->readAll();
// QTextCodec *codeTransfor = QTextCodec::codecForName("GBK");
// QString vTempStr = codeTransfor->toUnicode(vTemp);//.mid(2));
QString vTempStr = QTextCodec::codecForName("GBK")->toUnicode(vTemp);
QString vFinalStr = QTextCodec::codecForName("UTF-8")->fromUnicode(vTempStr);
// QString vTempStr = QString::fromLocal8Bit(vTemp);
//QString vTempStr(vTemp);
//QString vTempStr = tr(vTemp.data());
m_pEdt_Info->append(vFinalStr);
}
}
不是我的意思是你的代码页要设置成一样的编码!比如这样:
我一般都是设置成UTF-8的,因为要经常移植到linux,没有什么问题!
自己顶,请高手帮忙,万分感谢!!
乱码的一个问题就是编码方式不一致导致的,编码方式要统一!
你这里成这样
QTextCodec *codeTransfor = QTextCodec::codecForName("GBK");
那么你对应的代码文件也要是一样的编码哦
QStringLiteral("判断");