我有一个字符串,如“Some characters \ x00 \ x80 \ x34,然后是其他一些字符”。如何将常规字符转换为十六进制等效值,同时将\ x00转换为实际的00十六进制值? binascii.hexlify()将'\','x','0','0'视为实际字符。
稍后编辑: 字符串本身由另一个函数生成。当我打印它时,它实际打印“\ x00”。
答案 0 :(得分:1)
根据我的理解,您尝试仅将非十六进制值的字符转换为十六进制。如果您提供了一个尝试转换为十六进制的示例输入字符串,这将有所帮助。
此外,您只需使用内置的编码和解码方法即可转换为十六进制值。这应该照顾你想要做的事情。我在机器的终端中运行了以下三行,并给出了您期望的输出。我还附上了一张图片给你看。希望它有所帮助:
aStr = "Some characters \x00\x80\x34 and then some other characters"
aStr.encode("hex")
aStr.encode("hex").decode("hex")
答案 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