2015-07-02 90 views
0

今天我訂購了7種不同語言的翻譯,其中4種看起來很棒,但是當我打開其他3種,即希臘語,俄語和韓語時,那裏的文字並沒有關聯任何語言都可以。它看起來像一堆錯誤字符,就像你在文件上編碼錯誤時得到的那樣。修復文件編碼

舉例來說,這裏是韓語翻譯的輸出的一部分:

½Ì±UCA·¹À̾î

¸ÖƼÇ÷¹À̾î

¿É¼Ç

我甚至不會說一點韓語,但我可以肯定地告訴你,這不是韓語。

我認爲這是一個文件編碼問題,當我在記事本中打開文件時,編碼被列爲ANSI,這顯然是一個問題;其他兩種語言也可以這樣說。

有沒有人有任何想法如何解決這3個文件的編碼;我請求翻譯者重新上傳UTF-8,但同時,我想我可能會嘗試自己修復它。

如果有人有興趣看到實際的文件,你可以get them from my Dropbox

回答

2

如果將字節流視爲字節對,它們看起來含糊不清,但我不知道它們是您期望與否。

bash$ python3.4 
Python 3.4.3 (v3.4.3:b4cbecbc0781, May 30 2015, 15:45:01) 
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> buf = '½Ì±ÛÇ÷¹À̾î' 
>>> [hex(ord(b)) for b in buf] 
>>> ['0xbd', '0xcc', '0xb1', '0xdb', '0xc7', '0xc3', '0xb7', '0xb9', '0xc0', '0xcc', '0xbe', '0xee'] 
>>> u'\uBDCC\uB1DB\uC7C3\uB7B9\uC0CC\uBEEE' 
'뷌뇛쟃랹샌뻮' 

最好的辦法是等待翻譯者上傳UTF-8版本或讓他們告訴你文件的編碼。我不會假設他們的字節只是16位字符。

更新

我通過這個通過chardet模塊,並將其檢測到的字符集EUC-KR

>>> import chardet 
>>> chardet.detect(b'\xBD\xCC\xB1\xDB\xC7\xC3\xB7\xB9\xC0\xCC\xBE\xEE') 
{'confidence': 0.833333333333334, 'encoding': 'EUC-KR'} 
>>> b'\xBD\xCC\xB1\xDB\xC7\xC3\xB7\xB9\xC0\xCC\xBE\xEE'.decode('EUC-KR') 
'싱글플레이어' 

根據谷歌翻譯,第一行是「單人遊戲」。嘗試用記事本打開並使用EUC-KR作爲編碼。