带有转义十六进制值的python字符串到十六进制

时间:2016-01-17 00:20:18

标签: python string hex

我有一个字符串,如“Some characters \ x00 \ x80 \ x34,然后是其他一些字符”。如何将常规字符转换为十六进制等效值,同时将\ x00转换为实际的00十六进制值? binascii.hexlify()将'\','x','0','0'视为实际字符。

稍后编辑: 字符串本身由另一个函数生成。当我打印它时,它实际打印“\ x00”。

2 个答案:

答案 0 :(得分:1)

根据我的理解,您尝试仅将非十六进制值的字符转换为十六进制。如果您提供了一个尝试转换为十六进制的示例输入字符串,这将有所帮助。

此外,您只需使用内置的编码和解码方法即可转换为十六进制值。这应该照顾你想要做的事情。我在机器的终端中运行了以下三行,并给出了您期望的输出。我还附上了一张图片给你看。希望它有所帮助:

aStr = "Some characters \x00\x80\x34 and then some other characters"
aStr.encode("hex")
aStr.encode("hex").decode("hex")

Here is the code I ran in my terminal.

答案 1 :(得分:0)

目前还不清楚你在问什么,因为binascii.hexlify应该有效:

>>> import binascii
>>> s = "\x00\x80\x34"
>>> binascii.hexlify(s)
'008034'
>>> s = "foobar \x00\x80\x34 foobar"
>>> binascii.hexlify(s)
'666f6f6261722000803420666f6f626172'
  

foorbar = 666f6f6261722,space = 20

https://docs.python.org/3/library/binascii.html