繁体   English   中英

在python3中将十六进制字符串转换为字符

[英]Convert hex string to characters in python3

我需要将诸如5555555547aa之类的字符串转换为一串字符(即 �GUUUU )。 我有一个 function 在下面发布的 python2 中工作,但我无法在 python3 中正常工作。 我该怎么做?

    def hex_conv(hex_str):
      arr = [hex_str[i:i+2] for i in range(0, len(hex_str), 2)]
      rev = arr[::-1]
      out_str = ""
      for i in rev:
        print(i)
        out_str += ("\\x" + i).decode("string_escape")
      return out_str

更清楚我需要输出的内容(在 Python2 中):

print('\xaa\x47\x55\x55\x55\x55')

我努力了

print(bytes.fromhex("5555555547aa")[::-1].decode("utf-8", errors="replace"))

这不太管用。 它似乎产生相同的 output 但实际字节不同。

注意:output 将通过管道传输到另一个程序(用于二进制利用),因此需要准确打印字节。

您只需要结合 2 个步骤:使用bytes.fromhex从十六进制转换为字节串,并使用sys.stdout.buffer.write将字节串打印到标准输出。 把它们放在一起:

import sys
sys.stdout.buffer.write(bytes.fromhex("5555555547aa")[::-1])

源自 python 中的十六进制字符串到字节数组以及如何在 Python 3 中将原始十六进制字节写入标准输出?

暂无
暂无

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

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