用Qt編寫(xiě)的窗口與Unity3D通過(guò)Tcp進(jìn)行通信膀钠,通信過(guò)程中難免發(fā)送一些中文字符节芥,下面簡(jiǎn)單介紹一下:
Qt版本:5.9.9 显晶, 建立TcpServer
unity3D 建立TcpSocket? , 通過(guò)固定端口進(jìn)行通信
Qt與Unity3D通信發(fā)生中文亂碼問(wèn)題,主要在以下方面:
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.示例截圖
通過(guò)Qt發(fā)送一個(gè)視頻地址,在Unity3D上進(jìn)行視頻播放艇劫,也會(huì)打印出接收的數(shù)據(jù)吼驶。
videoPath代表視頻地址:前面的BG代表標(biāo)識(shí);MuTcpSocketObject是tcp通信.
好了店煞,都已經(jīng)介紹完畢蟹演,希望能幫到大家。