python-3.x 作为一名学习型数据科学家,我如何理解使用哪种解码器?

qv7cva1a  于 2022-12-20  发布在  Python
关注(0)|答案(1)|浏览(109)

我想把一个字符串解码成它的原始数据值,我不确定我是否采取了正确的步骤,或者是否使用了错误的编码器,当接收解码的数据时,有什么办法知道使用哪个编码器吗?

import base64

x = 'f71069a5840386c6ece104de3f2bafc3ecb1ff37f1bc64d20a75a98715b17f17'
x = base64.b64decode(x)
print(x)

And I get the following: 
b'\x7f\xbdt\xeb\xd6\xb9\xf3\x8d7\xf3\xa7:y\xc7\xb5\xd3\x87^\xdd\xfd\x9bi\xf77y\xc6\xf5}\xfd\xfb\x7fV\xdc\xeb\x87v\xd1\xae\xf9k\xdf;\xd7\x96\xf5\xed\xfd{'

Where do I go from here?
bvuwiixz

bvuwiixz1#

我只看到数字0-F,所以我猜您使用的是16进制,而不是64进制。在这种情况下,您可以使用bytes.from_hex来获取编码字符串:

>>> x = 'f71069a5840386c6ece104de3f2bafc3ecb1ff37f1bc64d20a75a98715b17f17'
>>> bytes.fromhex(x)
b'\xf7\x10i\xa5\x84\x03\x86\xc6\xec\xe1\x04\xde?+\xaf\xc3\xec\xb1\xff7\xf1\xbcd\xd2\nu\xa9\x87\x15\xb1\x7f\x17'

然后你就可以解码了:

>>> bytes.fromhex(x).decode('utf-8', errors='replace')
'�\x10i��\x03����\x04�?+����7�d�\nu��\x15�\x7f\x17'

这看起来不像UTF-8,所以您需要将其替换为所使用的任何编码。

相关问题