You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python中字节形式的十六进制直接转为字符串?

字节对象转十六进制字符串的解决方案

要把b'\x02\x08\x01\x00\x06\x0b'这类字节对象直接转成"28106b"这种十六进制字符串,你之前用的decode()和fromhex()方向不对:decode()是把字节按编码转成ASCII字符,fromhex()是把十六进制字符串转成字节,都不符合你的需求。

推荐两种简单可靠的方法:

  • 方法一:使用内置的hex()方法(Python 3.5+)
    这是最简洁的方式,字节对象自带的hex()方法直接返回小写的十六进制字符串:

    b = b'\x02\x08\x01\x00\x06\x0b'
    hex_str = b.hex()
    print(hex_str)  # 输出: 28106b
    

    要是需要大写的十六进制字符,加个upper()就行:b.hex().upper()会得到"28106B"。

  • 方法二:用binascii.hexlify
    这个模块方法也能实现,先转成十六进制字节串,再解码成普通字符串:

    import binascii
    b = b'\x02\x08\x01\x00\x06\x0b'
    hex_str = binascii.hexlify(b).decode('utf-8')
    print(hex_str)  # 输出: 28106b
    

这两种方法都会逐个处理字节对象里的每个字节,将其转换为对应的十六进制字符,完全符合你的项目规格要求,不会出现ASCII字符的问题。

内容的提问来源于stack exchange,提问作者Will

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 19:31:00