'utf8'编解码器在python中解码('utf-8')时无法解码字节0xc3

问题描述 投票:3回答:1

今天我的剧本中出现了奇怪的错误:

'utf8' codec can't decode byte 0xc3 in position 21: invalid continuation byte

我正在从socket sock.recv读取数据,结果是buff.decode('utf-8'),其中buff是返回的数据。

但是今天我发现了很多“独角兽”,其中一个角色返回“▒”< - 这就是将解码utf-8变为异常的原因。是否有一些预处理可以删除或替换这样一个奇怪的角色?

python encoding utf-8
1个回答
5
投票

.decode() 的第二个参数名为errors。您可以将其设置为'ignore'以忽略所有非utf8字符,或将其设置为'replace'以使用菱形问号( )替换它们。

buff.decode('utf-8', 'ignore')
© www.soinside.com 2019 - 2024. All rights reserved.