代码之家  ›  专栏  ›  技术社区  ›  TLeo

无法从导出的Instagram聊天记录中解析非ASCII字符[重复]

  •  0
  • TLeo  · 技术社区  · 1 年前

    我请求从Instagram下载数据,并选择了JSON格式。然而,当我获取文件并解压缩时,每个非ASCII字符都表示为Unicode转义序列。例如。:

    "sender_name": "Le\u00c3\u00b3 Tak\u00c3\u00a1cs"
    

    正确的文本应为:“sender_name”:“Le Takcs”

    我尝试用Python解析JSON文件并以某种方式纠正错误,但我得到的不是“\u00c3\u00b3”的“”。似乎,我尝试的每种方式,它总是返回单独解码的字符。emojies也发生了同样的事情,所以硬编码每个要替换的有问题的字符会有点头疼。我更喜欢一个在编程上可行的解决方案,但在这一点上,任何想法,包括第三方软件,都是可行的。

    1 回复  |  直到 1 年前
        1
  •  1
  •   Andj    1 年前

    似乎每个UTF-8字节都被解释为Unicode字符,或者换句话说,UTF-8被解释为拉丁语1编码文本。

    data = '"sender_name": "Le\u00c3\u00b3 Tak\u00c3\u00a1cs"'
    cleaned = data.encode('latin-1').decode('utf-8')
    print(cleaned)
    # "sender_name": "Leó Takács"
    

    "Le\u00c3\u00b3 Tak\u00c3\u00a1cs" 本应如此 b'"Le\xc3\xb3 Tak\xc3\xa1cs"' .