我正在使用json.net從服務器讀取以json格式發送的數據。服務器將它在json中發送的所有字符串類型數據編碼爲utf-8。正確處理從json.net收到的utf8字符串
現在看C#中的數據我做這樣的事:string s = json.Value<string>("data");
我假設串s
現在是UTF-8格式,而在C#中字符串的默認編碼爲UTF-16(Unicode)的。
要將字符串轉換爲unicode,這是否正確?
byte[] bytes = Encoding.Unicode.GetBytes(s);
string unicode = Encoding.UTF8.GetString(bytes);
我想要的(我認爲)是s
,然後將原始字節傳遞到UTF-8解碼得到unicode的,但我不知道究竟Encoding.Unicode.GetBytes
給我,或者我應該改爲使用。
你不能雙解析它。但是,首先你的字符串有什麼問題,因爲.NET中的所有字符串都是UTF16? –
那麼這個字符串是以utf-8的形式接收的,我假設我必須做些什麼,但是如果json.net自動處理這個,那麼就像你說的那樣,但是我不知道是不是這種情況。 – DaedalusAlpha
我認爲你需要交換它。 'Encoding.UTF8.GetBytes(s)'然後'Encoding.Unicode.GetString(bytes)'。這樣你就可以將UTF8轉換爲Unicode。 –