我正在開發一款應該與MMO遊戲服務器通信的客戶端。 客戶端正在使用unity3d。 我從JSON格式的服務器獲取數據,我試圖讓在UTF8編碼的數據:如何將類似utf8的字符串轉換爲真正的utf8?
string responseString = new System.IO.StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8).ReadToEnd()
JSONObject JOBJ = new JSONObject(responseString);
,什麼是內響應字符串的樣子:
"\u0645\u0639\u062f\u0646 \u062a\u06cc\u062a\u0627\u0646\u06cc\u0648\u0645"
然後我試着獲得所需的UTF8字符串數據移出JSON的:
string xy = JOBJ["name"].ToString();
byte[] utf = System.Text.Encoding.UTF8.GetBytes(xy);
string s2= System.Text.Encoding.UTF8.GetString(utf);
問題是,當我登錄的字符串:
Debug.Log("Jproperty :" + s2);
我得到的是帶有\ U secuences這樣的:
"\u0645\u0639\u062f\u0646 \u062a\u06cc\u062a\u0627\u0646\u06cc\u0648\u0645"
而如果我把同樣的結果在xy首先我會得到良好的效果。 另外我應該提到,雖然我認爲s2.length應該是11它是66.
任何人都可以告訴我我的代碼有什麼問題?
這不是在所有我清楚你的意思是什麼「而如果我把同樣的結果在xy首先我會得到良好的效果。」 –
我的意思是如果我定義了字符串xy =「\ u0645 \ u ....我可以在debug.log中看到正確的結果 – Farzam
正確,這意味着某個東西的編碼是兩次,或者解碼失敗。看起來像?請編輯該問題。 –