我一直在努力解码编码的字符串。
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
答案 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"}]'