我请求从 Instagram 下载数据,并选择了 JSON 格式。但是,当我获取该文件并将其解压缩时,每个非 ASCII 字符都表示为 Unicode 转义序列。例如:
"sender_name": "Le\u00c3\u00b3 Tak\u00c3\u00a1cs"
正确的文本是:“sender_name”:“Leó Takács”
我尝试使用 Python 解析 JSON 文件并以某种方式更正错误,但我得到的不是“\u00c3\u00b3”的“ó”,而是“ó”。看起来,我尝试的每一种方法,它总是返回单独解码的字符。同样的事情也发生在表情符号上,因此对每个有问题的字符进行硬编码以替换会有点令人头痛。我更喜欢一个可以通过编程方式实现的解决方案,但此时包括第 3 方软件在内的任何想法都可以发挥作用。
看起来每个 UTF-8 字节都被解释为 Unicode 字符,或者换句话说,UTF-8 被解释为 Latin 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"'
。