主要是轉碼的問題,兩個通訊端對字元的解碼和編碼方式不同,只需要找到相同的轉碼即可。
最初用的是的qstring :: tolatin1(),傳輸之後顯示為問號,然後用了的qstring :: tolocal8bit(),傳輸之後為亂碼,最後用了的qstring :: toutf8(),發現成功傳輸。
首先,我在傳送端做了一些簡單的輸出:
qstring test = "你好";
qdebug()<<"tolatin1 "《發現tolatin1()轉換之後,格式就產生了錯誤,用來tolocal8bit()之後,在接收端輸出:
//服務端
msg = "你好";
itemp->write(msg.tolocal8bit()); //item是我的乙個qtcpsocket物件
//接收端
qdebug()《最後使用toutf8()後,發現輸出正確
//服務端
msg = "你好";
itemp->write(msg.toutf8()); //item是我的乙個qtcpsocket物件
//接收端
qdebug()《程式成功,沒有什麼複雜的地方,只是找到相同的編碼方式呼叫即可。
Qt TCP資料通訊的中文亂碼問題
1 問題描述 寫了乙個簡單的tcp聊天軟體,在qtextedit上顯示文字,但是出現了通訊中文亂碼的問題。2 問題原因 並非是資料通訊問題,而是資料型別沒有及時轉換。3 具體 片段 1 傳送資料 void clientwidget on send 2 接受並顯示資料 void serverwidge...
URL中文傳輸亂碼解決
網頁url的合法字元分成兩類 url元字元 分號 逗號 斜槓 問號 冒號 at 等號 加號 美元符號 井號 語義字元 a z,a z,0 9,連詞號 下劃線 點 感嘆號 波浪線 星號 單引號 圓括號 除了以上字元,其他字元出現在url之中都必須轉義,規則是根據作業系統的預設編碼,將每個位元組轉為百分...
解決Json傳輸中文亂碼問題
1 如果是通過url傳遞 需要編碼兩次 var searchtext this.searchtext searchtext encodeuri searchtext searchtext encodeuri searchtext ajax 後台通過 string querycon request.g...