pytho3中编码问题报错'utf-8' codec can't decode byte 0xdc in position 1
def decrypts(self, encryptedData, iv):
new_sessionKey = base64.b64decode(self.sessionKey)
new_encryptedData = base64.b64decode(encryptedData)
new_iv = base64.b64decode(iv)
cipher = AES.new(new_sessionKey, AES.MODE_CBC, new_iv)
decrypted = json.loads(self._unpad(cipher.decrypt(new_encryptedData)).decode) # 会出现"utf-8"错误
if decrypted['watermark']['appid'] != self.appId:
raise Exception('Invalid Buffer')
return decrypted
def _unpad(self, s):
return s[:-ord(s[len(s)-1:])]
解码微信登录获取手机号时报错,有时又正常,要如何写
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可能有两个原因:
第一个原因就不说,你换成正确的编码即可。
第二个原因举个例子,对于合法的UTF8编码文本,可以成功解码:
如果因为某种原因,UTF8文本少了一个字节或者某个字节错掉了,解码时就会抛锚:
这时,你可以选择在解码中忽略错误:
或者将不可识别的字符替换成一个问号,以便定位UTF8字节流问题位置:
更多关于文本编码的细节介绍,可以参考我先前写的文章:一文说清文本编码那些事