我用C#的Newtonsoft.Json序列化json資料與服務端通信,但是發現序列化帶中文的utf8字串后,自動變成了gbk編碼的。然后我直接序列化byte型別的字符陣列,這個序列化后自動變成了base64編碼的,,如何才能正確的序列化為utf8字串呢。
Encoding utf8 = Encoding.UTF8;
Encoding defalutEnc = Encoding.Default;
byte[] unicodeBytes = defalutEnc.GetBytes("滴滴滴123"); // 中文字串
byte[] asciiBytes = Encoding.Convert(defalutEnc, utf8, unicodeBytes); // utf8 位元組陣列
var sendText = utf8.GetString(asciiBytes); // utf8字串
var data = new
{
type = 5000,
content = asciiBytes // 1. 直接序列化byte
// content = sendText // 2. 序列化 utf8字串
};
// 直接序列化byte,dataStr里面的content變成了base64編碼的資料
// 序列化utf8 string, dataStr里面的content變成了gbk編碼的資料
var dataStr = JsonConvert.SerializeObject(data);
// 發送 json 字串
SendJsonStr(dataStr);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/256977.html
標籤:C#
