Python解码utf-8编码数据
Python decode utf-8 encoded data
我一直在努力解码编码字符串。
str2=b'W3t2YWx1ZToxMCxtb2RlOiJsb3cifSx7dmFsdWU6NSxtb2RlOiJpbnRlcm1lZGlhdGUIfSx7dmFsdWU6MTAsbW9kZToiZXhwZXJ0In0se3ZhbHVlOjIsbW9kZW41=YWRta[]
当我尝试解码上面的字符串时。我得到的结果低于结果
打印(str1.decode('utf-8'))
W3t2YWx1ZToxMCxtb2RlOiJsb3cifSx7dmFsdWU6NSxtb2RlOiJpbnRlcm1lZGlhdGUIfSx7dmFsdWU6MTAsbW9kZToiZXhwZXJ0In0se3ZhbHVlOjIsbW9kZToiYWRtaW[1if=0]
请帮忙
不确定为什么要打印解码部分。我已经浏览过文档,重复的问题,但找不到正确的答案。
预期结果:
[{值:10,模式:"low"},{值:5,模式:"intermediate"},{值:10,模式:"expert"},{值:2,模式: "admin"}]
实际:
W3t2YWx1ZToxMCxtb2RlOiJsb3cifSx7dmFsdWU6NSxtb2RlOiJpbnRlcm1lZGlhdGUIfSx7dmFsdWU6MTAsbW9kZToiZXhwZXJ0In0se3ZhbHVlOjIsbW9kZToiYWRtaW4ifV0=
您的字符串已 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"}]'
事实上这是 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"}]'
我一直在努力解码编码字符串。
str2=b'W3t2YWx1ZToxMCxtb2RlOiJsb3cifSx7dmFsdWU6NSxtb2RlOiJpbnRlcm1lZGlhdGUIfSx7dmFsdWU6MTAsbW9kZToiZXhwZXJ0In0se3ZhbHVlOjIsbW9kZW41=YWRta[]
当我尝试解码上面的字符串时。我得到的结果低于结果
打印(str1.decode('utf-8'))
W3t2YWx1ZToxMCxtb2RlOiJsb3cifSx7dmFsdWU6NSxtb2RlOiJpbnRlcm1lZGlhdGUIfSx7dmFsdWU6MTAsbW9kZToiZXhwZXJ0In0se3ZhbHVlOjIsbW9kZToiYWRtaW[1if=0]
请帮忙
不确定为什么要打印解码部分。我已经浏览过文档,重复的问题,但找不到正确的答案。
预期结果: [{值:10,模式:"low"},{值:5,模式:"intermediate"},{值:10,模式:"expert"},{值:2,模式: "admin"}]
实际: W3t2YWx1ZToxMCxtb2RlOiJsb3cifSx7dmFsdWU6NSxtb2RlOiJpbnRlcm1lZGlhdGUIfSx7dmFsdWU6MTAsbW9kZToiZXhwZXJ0In0se3ZhbHVlOjIsbW9kZToiYWRtaW4ifV0=
您的字符串已 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"}]'
事实上这是 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"}]'