使用Facebook json消息编码/解码问题。 C#解析

时间:2018-06-11 13:42:25

标签: c# json facebook encoding

我已经通过我的会话档案下载了json。我坚持使用奇数编码。

json的例子:

{
  "sender_name": "Micha\u00c5\u0082",
  "timestamp": 1411741499,
  "content": "b\u00c4\u0099d\u00c4\u0099",
  "type": "Generic"
},

它应该是这样的:

{
  "sender_name": "Michał",
  "timestamp": 1411741499,
  "content": "będę",
  "type": "Generic"
},

我试图像这样反序列化它:

var result = File.ReadAllText(jsonPath, encodingIn);
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue;
var conversation = serializer.Deserialize<Conversation>(System.Net.WebUtility.HtmlDecode(result));

不幸的是输出是这样的:

{
  "sender_name": "MichaÅ\u0082",
  "timestamp": 1411741499,
  "content": "bÄ\u0099dÄ\u0099",
  "type": "Generic"
},

任何人都知道Facebook如何编码json?我尝试了几种方法但没有结果。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

以下是答案:

private string DecodeString(string text)
{
    Encoding targetEncoding = Encoding.GetEncoding("ISO-8859-1");
    var unescapeText = System.Text.RegularExpressions.Regex.Unescape(text);
    return Encoding.UTF8.GetString(targetEncoding.GetBytes(unescapeText));
}

我已收集所有答案,将它们混合在一起,我们就在这里。谢谢。