今天我的剧本中出现了奇怪的错误:
'utf8' codec can't decode byte 0xc3 in position 21: invalid continuation byte
我正在从socket sock.recv
读取数据,结果是buff.decode('utf-8')
,其中buff是返回的数据。
但是今天我发现了很多“独角兽”,其中一个角色返回“▒”< - 这就是将解码utf-8变为异常的原因。是否有一些预处理可以删除或替换这样一个奇怪的角色?
.decode()
的第二个参数名为errors
。您可以将其设置为'ignore'
以忽略所有非utf8字符,或将其设置为'replace'
以使用菱形问号( )替换它们。
buff.decode('utf-8', 'ignore')