解決Qt Tcp通信傳輸中文字符亂碼問題

用Qt編寫的窗口與Unity3D通過Tcp進(jìn)行通信,通信過程中難免發(fā)送一些中文字符,下面簡(jiǎn)單介紹一下:

Qt版本:5.9.9 , 建立TcpServer

unity3D 建立TcpSocket? , 通過固定端口進(jìn)行通信

Qt與Unity3D通信發(fā)生中文亂碼問題,主要在以下方面:

1. 在Qt main.cpp 中添加以下設(shè)置

QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));

GBK要與Unity3D中的保持一致,GB2312也是可以的,UTF-8不可以。

2. Qt發(fā)送數(shù)據(jù)

mCommondSocket->write(command.toLocal8Bit());

發(fā)送的字符串直接轉(zhuǎn)化為QByteArray發(fā)送,轉(zhuǎn)化為char*發(fā)送,是會(huì)亂碼的。

3.示例截圖

通過Qt發(fā)送一個(gè)視頻地址,在Unity3D上進(jìn)行視頻播放,也會(huì)打印出接收的數(shù)據(jù)。

圖1


圖2

videoPath代表視頻地址:前面的BG代表標(biāo)識(shí);MuTcpSocketObject是tcp通信.

圖3. Unity3D默認(rèn)窗口


圖4. 視頻播放

好了,都已經(jīng)介紹完畢,希望能幫到大家。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容