显示乱码的原因是因为编码格式不一致。
下面附上一个曾经的例子。
QString str = ui->textEdit->toPlainText();QByteArray text = str.toUtf8();//返回一个字符串的utf-8形式,可以表示所有字符
// QByteArray text = str.toLatin1();//只能输出英文和数字,即拉丁文,汉字会被?代替
// QByteArray text = str.toLocal8Bit();//只能输出英文和数字,汉字会被乱码qint64 bytes = tcpClient->write(text);
在使用toUtf8()函数转换后进行发送,然后接收端接收后可以正常显示。
if(socketConnected->bytesAvailable()>0){QString str = socketConnected->readAll();//QByteArray dataui->textEdit->append(str);ui->RecevieDataLabel->setText(tr("消息接收完成!"));}