【问题标题】:Encoding/decoding issue with Facebook json messages. C# parsingFacebook json 消息的编码/解码问题。 C# 解析
【发布时间】:2018-11-20 18:57:42
【问题描述】:

我已经下载了带有我的对话存档的 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 的吗?我尝试了几种方法,但没有结果。

感谢您的帮助。

【问题讨论】:

标签: c# json facebook encoding


【解决方案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));
}

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

【讨论】:

  • 这对我解决 Facebook 数据造成的混乱非常有效。
  • 我一直在寻找如何在 C# 中实现这一点。谢谢你。几年过去了,Facebook 仍然没有修复他们的 JSON 文件。
猜你喜欢
  • 2014-06-28
  • 2023-04-09
  • 1970-01-01
  • 2015-04-06
  • 2019-04-27
  • 2018-06-23
  • 2021-11-17
  • 2023-03-12
  • 1970-01-01
相关资源
最近更新 更多