2017-09-12 78 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被用來解碼最初的字節的? –