Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python解码奇怪的字符_Python_Decode_Encode - Fatal编程技术网

Python解码奇怪的字符

Python解码奇怪的字符,python,decode,encode,Python,Decode,Encode,C�R�monie,我如何将python中的这些字符解码为cérémonie line.encode('utf-8').decode('utf-8') 我试着用“拉丁语-1”和“utf-8”来解码它,但得到了相同的结果:Cè½rè½monie。因为“line”是一个字符串,所以我不能直接解码 当我打开文件时,我也尝试使用和编码,但得到了相同的结果:Cï½rï½monie f = open('data/u.item', 'r', encoding='latin-1') lines = f.re

C�R�monie,我如何将python中的这些字符解码为cérémonie

 line.encode('utf-8').decode('utf-8')
我试着用“拉丁语-1”和“utf-8”来解码它,但得到了相同的结果:Cè½rè½monie。因为“line”是一个字符串,所以我不能直接解码

当我打开文件时,我也尝试使用和编码,但得到了相同的结果:Cï½rï½monie

f = open('data/u.item', 'r', encoding='latin-1')
lines = f.readlines()
for line in lines:
    print(line)
我使用binaire(2.7):

我这样做是因为python无法读取我的字符串

使用示例:

我在“binaire字符串”中分隔字符串(数据)

我发现wich char与wich有共同的反应

print binaire
我将替换为byte:example

binaire = binaire.replace("11101010", "1100101")  # replace ê by e in my case
我用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])

您使用的是python 2还是python 3?我使用的是python 3DID您编写的代码最初是在该文件中写入数据的,还是由您无法控制的某个进程生成的?如果您以二进制模式打开该文件:
f=open('data/u.item','rb')
打印(repr(line))打印什么?是的,它不是由我处理的,我刚刚意识到文件中的一些数据被破坏了。现在觉得自己很愚蠢。谢谢你的帮助
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])