当我尝试和反序列化包含一个£符号,我得到了异常的JSON字符串。
时发生错误,反序列化类型RD.Details的对象。 “�19.95每人”包含无效的UTF8字节。
我日志字符串是如下:
{
"Promotions":[
{
"Name":"Traditional Afternoon Tea £19.95 Per Person",
"PromotionId":20175,
"Quantity":2
}
]
}
这就是我如何反序列化:
var responseJsonSerializer = new DataContractJsonSerializer(typeof(TR));
Stream serializedStream;
string serializedString;
byte[] buffer;
using (WebResponse webResponse = webRequest.GetResponse())
{
serializedStream = webResponse.GetResponseStream();
using (StreamReader sr = new StreamReader(serializedStream))
{
serializedString = sr.ReadToEnd();
}
Report.Log("Message Response JSON Object: " + serializedString);
buffer = Encoding.Default.GetBytes(serializedString);
using (MemoryStream stream = new MemoryStream(buffer))
{
return responseJsonSerializer.ReadObject(stream) as TR;
}
}
我不明白为什么£符号被视为无效UTF8。 有不妥的地方,据我所看到的。