我有一个读取.txt文件的字符串,看起来像这样:
str='\x00I\x00S\x00T\x00A\x00\r\x00\n\x00[\x00/\x00B\x00O\x00D\x00Y\x00]\x00\r\x00\n\x00'
该文件的内容是葡萄牙语,不允许我编码为utf-8。
当我执行print(str)
时,它会正常显示,但是当我尝试使用这些字符时,我会收到以下错误:UnicodeDecodeError: 'utf8' codec can't decode byte...
。我需要做什么来获取字符串的内容,以便我可以使用它?谢谢。
编辑:实际上,print语句无法正常工作,因为某些重音会在print语句中被?
替换。
答案 0 :(得分:4)
>>> '\x00I\x00S\x00T\x00A\x00\r\x00\n\x00[\x00/\x00B\x00O\x00D\x00Y\x00]\x00\r\x00\n'.decode('utf-16be')
u'ISTA\r\n[/BODY]\r\n'
如果它来自某个文件,请使用codecs.open()
代替open()
,并传递相应的编码。