我给了Qt的项目,该项目需要支持波斯language.T他的数据从服务器发送和使用的第一线,我得到一个QByteArray中,并使用第二线将其转换为QString的:
QByteArray readData = socket->readAll();
QString DataAsString = QTextCodec::codecForUtfText(readData)->toUnicode(readData);
Run Code Online (Sandbox Code Playgroud)
当数据发送是英文时,一切都很好,但是当它是波斯语时,而不是
????
Run Code Online (Sandbox Code Playgroud)
我明白了
سÙ\u0084اÙ\u0085
Run Code Online (Sandbox Code Playgroud)
我提到了这个过程,所以人们不会建议制作使用.tr的多语言应用程序的方法.所有关于文本和解码都不是那些翻译方法.我的操作系统是Windows 8.1(对于你需要知道它的情况).
当服务器发送سلام时,我得到这个十六进制值
0008d8b3d984d8a7d985
Run Code Online (Sandbox Code Playgroud)
顺便说一句,服务器在开始时发送两个额外的字节,原因我不知道.所以我用以下方法切断它:
DataAsString.remove(0,2);
Run Code Online (Sandbox Code Playgroud)
在它被转换为QString之后,十六进制值在乞讨时有一些额外的.
感谢您阅读我的帖子.