【发布时间】:2018-10-05 02:31:57
【问题描述】:
我下载了我的 Facebook Messenger 数据(在您的 Facebook 帐户中,转到设置,然后转到您的 Facebook 信息,然后下载您的信息 ,然后创建一个至少选中 Messages 框的文件)来做一些很酷的统计数据
但是编码有一个小问题。我不确定,但看起来 Facebook 对这些数据使用了错误的编码。当我用文本编辑器打开它时,我看到如下内容:Rados\u00c5\u0082aw。当我尝试使用 python (UTF-8) 打开它时,我得到RadosÅ\x82aw。但是我应该得到:Radosław。
我的python脚本:
text = open(os.path.join(subdir, file), encoding='utf-8')
conversations.append(json.load(text))
我尝试了一些最常见的编码。示例数据为:
{
"sender_name": "Rados\u00c5\u0082aw",
"timestamp": 1524558089,
"content": "No to trzeba ostatnie treningi zrobi\u00c4\u0087 xD",
"type": "Generic"
}
【问题讨论】:
-
你为什么假设数据是 UTF-8 ?如果您不知道它的编码,您是否尝试过其他合理的可能性,例如Windows 1250 还是 ISO 8859-2?
-
我试了几个。没有工作。我遇到过之前问过的这个问题:stackoverflow.com/questions/19161501/… 但是我不知道如何让它对我有用
-
不知道是否有帮助,但表情符号编码在 facebooks api 中似乎很时髦:stackoverflow.com/questions/20045268/…
-
@JakubJendryka:对,我不熟悉那个系统,也许里面确实有 mojibake; UTF-8 数据被解码为 Latin-1,然后编码为 JSON。
-
@Patrick:到目前为止,这已经是相当古老的历史了。我们不再使用该编码(并且仅适用于表情符号)。
标签: python python-3.x unicode mojibake