2017-04-21 56 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])