我必须进行一些文本处理,并且遇到编码方面的问题:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb6 in position 11: invalid start byte
所以我做了:
text = text.encode('utf-8').strip()
但是后来在代码中我必须这样做:
text = text.replace(' ', '_')
这给了我以下错误:
TypeError: a bytes-like object is required, not 'str'
但此时的text
类型是字节。我在python shell上运行它,如下所示,在encode
命令之后,结果是类bytes
的对象。
这里到底发生了什么,我该如何解决这个问题?我正在使用Python 3.5.2
答案 0 :(得分:3)
您使用什么来替换它必须是类似字节的对象。
因此,您应该使用要替换的字符的字节表示。 (试试这个)
text = text.replace(b' ', b'_')
但是,请知道这是在python 3.6中修复的,所以如果可能的话,你应该更新到这个版本。