繁体   English   中英

十六进制字符串到python中的字符

[英]hex string to character in python

我有一个十六进制字符串,如:

data = "437c2123"

我想根据ASCII表将此字符串转换为字符序列。 结果应该是:

data_con = "C|!#"

谁能告诉我怎么做?

在Python2中

>>> "437c2123".decode('hex')
'C|!#'

在Python3中(也适用于Python2,对于<2.6,你不能在字符串前加上b

>>> import binascii
>>> binascii.unhexlify(b"437c2123")
b'C|!#'
In [17]: data = "437c2123"

In [18]: ''.join(chr(int(data[i:i+2], 16)) for i in range(0, len(data), 2))
Out[18]: 'C|!#'

这里:

  • for i in range(0, len(data), 2)在每一个第二位置迭代data024
  • data[i:i+2]查看每对十六进制数字'43''7c'等。
  • chr(int(..., 16))将十六进制数字对转换为相应的字符。
  • ''.join(...)将字符合并为一个字符串。

从Python 2.6开始,您可以使用简单的:

data_con = bytes.fromhex(data)

ord函数将字符转换为数值,而chr函数则反转。 所以要将97转换为"a" ,请执行ord(97)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM