Python解码utf-8编码数据

问题描述 投票:0回答:2

我一直在努力解码编码的字符串。

STR2 = b'W3t2YWx1ZToxMCxtb2RlOiJsb3cifSx7dmFsdWU6NSxtb2RlOiJpbnRlcm1lZGlhdGUifSx7dmFsdWU6MTAsbW9kZToiZXhwZXJ0In0se3ZhbHVlOjIsbW9kZToiYWRtaW4ifV0 =”

当我尝试解码上面的字符串。我的结果低于结果

打印(str1.decode( 'UTF-8'))

W3t2YWx1ZToxMCxtb2RlOiJsb3cifSx7dmFsdWU6NSxtb2RlOiJpbnRlcm1lZGlhdGUifSx7dmFsdWU6MTAsbW9kZToiZXhwZXJ0In0se3ZhbHVlOjIsbW9kZToiYWRtaW4ifV0 =

请帮忙。

不确定为什么解码部分正在打印。我一直在通过文档,重复的问题,但找不到正确的答案。

预期结果:[{值:10,模式:“低”},{值:5,模式:“中间”},{值:10,模式:“专家”},{值:2,模式:“管理员” }]

实际:W3t2YWx1ZToxMCxtb2RlOiJsb3cifSx7dmFsdWU6NSxtb2RlOiJpbnRlcm1lZGlhdGUifSx7dmFsdWU6MTAsbW9kZToiZXhwZXJ0In0se3ZhbHVlOjIsbW9kZToiYWRtaW4ifV0 =

python utf-8 decoding
2个回答
2
投票

你的字符串是base64编码。尝试:

import base64

str2=b'W3t2YWx1ZToxMCxtb2RlOiJsb3cifSx7dmFsdWU6NSxtb2RlOiJpbnRlcm1lZGlhdGUifSx7dmFsdWU6MTAsbW9kZToiZXhwZXJ0In0se3ZhbHVlOjIsbW9kZToiYWRtaW4ifV0='

base64.b64decode(str2).decode('utf8')

结果:

'[{value:10,mode:"low"},{value:5,mode:"intermediate"},{value:10,mode:"expert"},{value:2,mode:"admin"}]'

0
投票

实际上这是一个base64编码而不是utf-8

当需要编码需要通过设计用于处理文本数据的媒体存储和传输的二进制数据时,通常使用Base64编码方案。这是为了确保数据在运输过程中保持完好无需修改

好吧解码它你需要以下

import base64
str2 = b"W3t2YWx1ZToxMCxtb2RlOiJsb3cifSx7dmFsdWU6NSxtb2RlOiJpbnRlcm1lZGlhdGUifSx7dmFsdWU6MTAsbW9kZToiZXhwZXJ0In0se3ZhbHVlOjIsbW9kZToiYWRtaW4ifV0="
plaintext = base64.b64decode(str2)
print(plaintext)

# out : b'[{value:10,mode:"low"},{value:5,mode:"intermediate"},{value:10,mode:"expert"},{value:2,mode:"admin"}]'
© www.soinside.com 2019 - 2024. All rights reserved.