0

在我的基于 Google App Engine 的应用程序中,我从 SOAP 网络服务中获取数据。问题是其中一个标签包含二进制 64 编码数据。我使用解码它

decodedStr = base64.b64decode(str(content))

似乎解码没有正确完成,我在 decodeStr 中得到了垃圾数据。我认为问题在于内容字符串被错误地解析为 unicode 字符串而不是简单的字节字符串

任何 Python 大师都可以告诉我如何在 Python 中处理 b64 编码数据吗?

现在我正在使用这个解决方法

fileContent = str(fileContent)
fileContent = fileContent[3:-3]
self.response.out.write(base64.b64decode(fileContent))
4

2 回答 2

0

您可以尝试使用 base64.decodestring,或者如果您传递了一个 url base64.urlsafe_b64decode。确保数据不在 base16 或 base32 中。

于 2012-04-05T10:25:32.700 回答
0

奇怪的。如果内容不是 b64 编码的,则对 decode 的调用应该引发 TypeError 异常。我假设这不会发生?

这会让我想知道你怎么知道得到的 decodedStr 不是你想要的?

于 2012-04-05T11:00:10.917 回答