Python 我如何知道是什么编码被用来产生一些乱码的中文文本?

Python 我如何知道是什么编码被用来产生一些乱码的中文文本?,python,chinese-locale,mojibake,Python,Chinese Locale,Mojibake,我有一些从英文翻译成简体中文的文本。然而,当我收到返回的文件时,字符被乱码了。因此,例如,我们有一行字是“ÎÐÐÐÐЧ、¸ßÐØÏÏÏÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐЧ§、Ð20 我曾尝试将上面的字符串粘贴到Python解释器中,将其转换为Unicode,并使用各种中文字符集进行解码,但没有成功。有人对此有见解吗?谢谢。: : 你知道原始编码中使用了什么Unicode编码吗?@a_river_in_canada不,这是问题的主题要求的。你知道原始编码中使用了什么Unicode编码吗?@a_r

我有一些从英文翻译成简体中文的文本。然而,当我收到返回的文件时,字符被乱码了。因此,例如,我们有一行字是“ÎÐÐÐÐЧ、¸ßÐØÏÏÏÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐЧ§、Ð20

我曾尝试将上面的字符串粘贴到Python解释器中,将其转换为Unicode,并使用各种中文字符集进行解码,但没有成功。有人对此有见解吗?谢谢。

:


你知道原始编码中使用了什么Unicode编码吗?@a_river_in_canada不,这是问题的主题要求的。你知道原始编码中使用了什么Unicode编码吗?@a_river_in_canada不,这是问题的主题要求的。谢谢你,Josh!这是可行的,但我仍然对这种情况下的编码有点困惑。。为什么
s.encode('l1').decode('gb2312')
有效,而
s.encode('utf8').decode('gb2312')
无效?您给出的文本是一个字符串,它是对一个字节字符串的解释。为了确定这些字节的真正含义,我必须对您问题中的字节字符串进行反向工程。确定您在提问时使用了Latin-1来解码字节串,而不是UTF-8。我明白了,您是如何知道Latin-1最初用于解码字节的?当然,您可能(尽管有点奇怪)实际收到的是GB2312文本,然后被解码为Latin-1并编码为UTF-8。但是你只发布了字符,而不是字节,所以没有办法判断。这似乎是可能的。查看以查看在各种编码中可以找到哪些字符。谢谢你,乔希!这是可行的,但我仍然对这种情况下的编码有点困惑。。为什么
s.encode('l1').decode('gb2312')
有效,而
s.encode('utf8').decode('gb2312')
无效?您给出的文本是一个字符串,它是对一个字节字符串的解释。为了确定这些字节的真正含义,我必须对您问题中的字节字符串进行反向工程。确定您在提问时使用了Latin-1来解码字节串,而不是UTF-8。我明白了,您是如何知道Latin-1最初用于解码字节的?当然,您可能(尽管有点奇怪)实际收到的是GB2312文本,然后被解码为Latin-1并编码为UTF-8。但是你只发布了字符,而不是字节,所以没有办法判断。这似乎是可能的。查看以查看在各种编码中可以找到哪些字符。
>>> s = "ΪÁËÓÐЧ¡¢¸ßЧµØʵÏÖÄ¿±ê£¬Äú×îÐèÒªµÄÊÇʲô£¿"
>>> chardet.detect(s.encode('l1'))
{'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'}
>>> s.encode('l1').decode('gb2312')
'为了有效、高效地实现目标,您最需要的是什么?'