2017-09-12 76 views
0

我有一些文字这是从英文翻译成简体中国。但是,当我收到文件时,这些字符出现乱码。因此,举例来说,我们一行写着“ΪÁËÓÐЧ¡¢¸ßЧμØÊμÏÖÄ¿±£ê׬Äú£îÐèÒªμÄÊÇʲÃ'¿”,而不是包含中国汉字我期望的那样。如何判断用什么编码生成乱码的中文文本?

我已经试过粘贴上面的字符串转换为Python解释器,将其转换为Unicode,并与中国各字符集解码,都无济于事。有没有人有这方面的见解?谢谢。

+0

你知道什么是Unicode编码的原始编码中使用? –

+1

@a_river_in_canada不,这就是问题要求的主题。 – JacobIRR

回答

5

Chardet

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

谢谢你,乔希!这工作,但我还是有点困惑编码在这种情况下..为什么's.encode(“L1”)解码(“GB2312”)'工作,同时's.encode(“utf-8”)。解码('gb2312')'不? –

+0

您给出的文本是一串字符,它是一串字节的解释。为了确定这些字节的真正含义,我必须对你问题中的字节串进行逆向工程。确定您使用Latin-1在提问时解码字节串,而不是UTF-8。 –

+0

我明白了,你是怎么知道Latin-1被用来解码最初的字节的? –