Python解码utf-8编码数据

时间:2019-04-26 06:18:15

标签: python utf-8 decoding

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

str2 = b'W3t2YWx1ZToxMCxbbR9

当我尝试解码以上字符串时。我的结果不如意

print(str1.decode('utf-8'))

W3t2YWx1ZToxMCxtb2RlOiJsb3cifSx7dmFsdWU6NSxtb2RlOiJpbnRlcm1lZGlhdGUifSx7dmFsdWU6MTAsbW9kZToiZXhwZXJBW11V

请帮助。

不确定为什么解码部分被打印。我浏览过文档,存在重复的问题,但是找不到正确的答案。

预期结果: [{value:10,mode:“ low”},{value:5,mode:“ intermediate”},{value:10,mode:“ expert”},{value:2,mode:“ admin”}]] < / p>

实际: W3t2YWx1ZToxMCxtb2RlOiJsb3cifSx7dmFsdWU6NSxtb2RlOiJpbnRlcm1lZGlhdGUifSx7dmFsdWU6MTAsbW9kZToiZXhWZXJ0In0se3ZhV1W

2 个答案:

答案 0 :(得分: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"}]'

答案 1 :(得分: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"}]'