UnicodeDecodeError:“utf8”编解码器无法解码位置3中的字节0xa3:起始于无效

2024-04-20 16:19:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是repl.itpythonwebide,我真的不能用它来解决问题。在

我试图解码一个字符串,但似乎没有办法。在

import base64

ciphertext = 'FxM7o1wl/7wE9CHPNzbB944feDFXbTSVaJfaLsUMzH5EP4xZRz7Sq8O3y7+jPbXIMVRxpvJZZm7ugqQ4fwpJwtvnB0/BoU+hhGeEZZZ0fFj1irm/zg3bsxOoxBJx4B3U'

ciphertext = base64.b64decode(ciphertext)

print ciphertext

UnicodeDecodeError: 'utf8' codec can't decode byte 0xa3 in position 3: invalid start byte


Tags: 字符串importbyte解码repl解决问题base64办法
1条回答
网友
1楼 · 发布于 2024-04-20 16:19:02

您不能打印ciphertext,因为它是一个无意义的二进制字节序列,根本不是文本(我检查过)。在

您的终端假设如果您打印了某个内容,则该内容是UTF8;和it is not. Hence the error。如果你有一个密文VGhpcyB3aWxsIGJlIHByaW50ZWQuCg==,那么打印出来就不会有问题,因为它解码为有效的UTF-8(实际上是有效的ASCII-7)。在

如果要显示密文,可以用空格替换非UTF8字符,也可以将密文打印为十六进制。在

但是,实际上,您真正应该做的是在打印之前对其进行解密(另外,当您完成后,请验证它是UTF8文本,而不是用ISO-8859-15或其他字符集编码的)。如果是,您可以使用适当的编解码器;this answer还提供了有关字符集的有用信息)。在

相关问题 更多 >