2012-11-29 150 views
0

我有一個Qt應用程序(C++),我有一個unicode字符串(在QString中)。 我將字符串發送給2個客戶端,一個接收二進制數據,另一個JSON。這個UTF-8編碼是否正確?

當我發送以下字符串「米拉諾維奇」的字母「C」大幹快上的客戶端搞砸了。雖然我甚至不確定它是否從服務器正確發送。

我發送以下字節爲字符接受二進制數據的客戶端:C4 86.這就是我從的QString :: toUtf8()獲得。

對於JSON我使用QJson,它將該字符串轉換爲「MilanoviÄ」。那麼,這就是我在控制檯中看到的。字節仍然是「c4 86」。

這是正確的,或者我應該改變一些在服務器端?我可以改變QJson庫,不要對代碼> 127的字符進行轉換,但我寧可不要,除非我必須。請指教。

+4

字節仍然是'c4 86',所以它沒有改變任何東西。字節只是以錯誤的編碼解釋。您需要通知任何顯示字符的屏幕,即對這些字節進行編碼的字符。 – Esailija

回答

0

您應該對客戶說什麼編碼他們實際上希望,然後將其發送給客戶機運行前通過適當的QTextEncoder文本服務器。