2017-04-21 54 views
0

C r monie,我將如何解碼python中的這些字符爲cérémonie?Python解碼怪異字符

line.encode('utf-8').decode('utf-8') 

我試着給它 「拉丁-1」 和 「UTF-8」 解碼但得到相同的結果:C�r�monie。由於「行」是一個字符串,我不能直接解碼它?

我試圖使用和編碼當我打開過的文件,但得到了同樣的結果:C�r�monie

f = open('data/u.item', 'r', encoding='latin-1') 
lines = f.readlines() 
for line in lines: 
    print(line) 
+0

你使用python 2或3? – gonczor

+0

我正在使用python3 – LarmadVara

+2

您是否編寫了最初在該文件中編寫數據的代碼,還是由某個您無法控制的進程生成? –

回答

1

我用binaire(2.7):

我這樣做是因爲蟒是不能夠讀我的字符串使用

例如:

我分開的字符串(數據)中的「binaire字符串」

binaire = ' '.join(format(ord(x), 'b') for x in data) 

我找到至極至極焦炭corespond

print binaire 

我用字節替換:例如

binaire = binaire.replace("11101010", "1100101") # replace ê by e in my case 

我reconverte我的字符串在Python字符串

res = bitstring_to_bytes(binaire) 



def bitstring_to_bytes(tab): 
     tab = tab.split(" ") 
     string = "" 
     for t in tab: 
      string = string + bitchar_to_bytes(t) 
     return string 

def bitchar_to_bytes(s): 
    v = int(s, 2) 
    b = bytearray() 
    while v: 
      b.append(v & 0xff) 
     v >>= 8 
    return bytes(b[::-1])