我必须进行一些文本处理并且在编码方面遇到问题:
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
请您参考如下方法:
你用来替换它的必须是一个类似字节的对象。
因此,您应该使用要替换的字符的字节表示形式。 (试试下面这个)
text = text.replace(b' ', b'_')
但是,请注意这在 python 3.6 中已修复,因此您可能应该尽可能更新到此版本。
