我正在使用json.net从服务器读取以json格式发送的数据。服务器将它在json中发送的所有字符串类型数据编码为utf-8。
现在要读取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
到底给了我什么,或者我应该使用什么。
答案 0 :(得分:0)
由于.NET are encoded in UTF-16中的string
个对象,因此无需转换任何内容。
如果有什么要改变,你应该改变JSON.NET反序列化字符串的东西:你不能对它进行双重解析。传入的JSON字符串已针对特定编码进行了解释。没有原始字节,你就无法从那里回来。