QT, QDataStream ภาษาไทย utf8

การรับส่งข้อความภาษาไทยแบบ utf8 ด้วย QDataStream ผ่านทาง QTcpSocket
กว่าจะได้มางงไป 2 คืน
เป็นเพราะไม่ได้ใส่เจ้า ".c_str()" ถ้าไม่แปลงเป็น constant string จะ compile ไม่ผ่าน

//------------ Read ----------------------
QDataStream in(client); //Tcp Socket
in.setVersion(QDataStream::Qt_4_0);
QString strData;
QString inMSG;
.
.
in >> inMSG;
strData = QString::fromUtf8(inMSG.toStdString().c_str());


//----------- Write ----------------------
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_0);
QString MSG;
MSG = QString("ทดสอบ ภาษาไทย").toUtf8();
out << MSG;
sock->write(block); // TCP Socket

//-------------------------------------------

กัง

Comments