python - 我如何找出使用什么编码产生一些乱码的中文文本?

标签 python chinese-locale mojibake

我有一些文本是从英文翻译成简体中文的。但是,当我收到文件时,字符是乱码。因此,例如,我们有一行内容为“ȪÁªµÄÊÇʲô£¿”,而不是包含我期望的汉字。

我试过将上面的字符串粘贴到 Python 解释器中,将其转换为 Unicode,并使用各种中文字符集进行解码,但无济于事。有人对此有见识吗?谢谢。

最佳答案

Chardet :

>>> s = "ΪÁËÓÐЧ¡¢¸ßЧµØʵÏÖÄ¿±ê£¬Äú×îÐèÒªµÄÊÇʲô£¿"
>>> chardet.detect(s.encode('l1'))
{'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'}
>>> s.encode('l1').decode('gb2312')
'为了有效、高效地实现目标,您最需要的是什么?'

关于python - 我如何找出使用什么编码产生一些乱码的中文文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46183308/

相关文章:

php - 提交表单时回复电子邮件中的 Mojibake(但不是每次)

python - 未烘烤的mojibake

python - JSON 文件到数据帧转换-ValueError : Unexpected character found when decoding array value (2)

python - 如何为 DataFrame 行分配唯一标识符

r - 如何用 knitr::spin 显示/打印汉字

java - 如何在Joda Time中使用中国历法?

python - 在 Python 中从自定义包导入失败

python - 解析传入字节流的最佳方法?

php - 为中文字符创建 URL slugs。使用 PHP

c++ - std::wcout << L"élève"的意外输出;在 Windows 外壳中