在Python中将十六进制转换为ASCII字符

时间:2018-10-22 22:38:57

标签: python data-conversion

我想要的东西看起来像这样:

Kì°k[7ì]ÿ¯G]ìw/uëGU—kÔÍj+³¯Mè1Sjwˆ½öm�Á|Uç

但是我在使用时不断得到这个 binascii.unhexlify(ph)#ph是一个十六进制字符串:

x05\x00\x00\xd0\x05\x00data!W\x00\x00\t\x00\x00\

PS:我基本上是想通过从我制作的包含十六进制值的字符串中删除一些代码行,来将AUDIO文件转换为另一个扩展名。 (我用Hex Editor手动尝试过,它工作得很好,我想为此制作一个python脚本,但在转换步骤中发现了麻烦)

Here is an example of what i want to get.

1 个答案:

答案 0 :(得分:0)

万一有人有同样的问题,我就会找到答案。假设我要将ch =“ E4BC716838B15CE6FCD5”十六进制字符串转换为ASCII,而ph是我要获取的ascii字符串: 只需一次在字符串上循环两个字符,对这两个字符串使用int()以及16,然后使用chr()将数字转换为字符。 这是代码:

ch="E4BC716838B15CE6FCD5"
ph=''
for i in range(1,(len(ch)//2)+1):
   Lh=''                 
   Lh=ch[2*i-2:2*i]              #This is the two char string for each loop
   x = int(Lh,16)                #The value of the 'Lh' Hex
   ph=ph+chr(x)                  #chr is used to convert the int to ascii

结果是ph ='ä¼qh8±\æüÕ'