我请求从Instagram下载数据,并选择了JSON格式。然而,当我获取文件并解压缩时,每个非ASCII字符都表示为Unicode转义序列。例如。:
"sender_name": "Le\u00c3\u00b3 Tak\u00c3\u00a1cs"
正确的文本应为:“sender_name”:“Le Takcs”
我尝试用Python解析JSON文件并以某种方式纠正错误,但我得到的不是“\u00c3\u00b3”的“”。似乎,我尝试的每种方式,它总是返回单独解码的字符。emojies也发生了同样的事情,所以硬编码每个要替换的有问题的字符会有点头疼。我更喜欢一个在编程上可行的解决方案,但在这一点上,任何想法,包括第三方软件,都是可行的。
似乎每个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"' .
"Le\u00c3\u00b3 Tak\u00c3\u00a1cs"
b'"Le\xc3\xb3 Tak\xc3\xa1cs"'