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

Python中如何将特定格式字符串转换为目标bytearray?

解决方案

要得到目标bytearray(b'\x14\x12\x13\x11\x69'),核心是把字符串开头的x14转换成字节0x14,同时保留后续转义字符对应的原始字节值。具体实现如下:

var = "x14\x12\x13\x11\x69"

# 提取开头的十六进制数字(去掉前缀'x')
start_hex = var[1:3]
# 将剩余每个字符转为两位十六进制字符串
remaining_hex = ''.join(f"{ord(c):02x}" for c in var[3:])
# 拼接完整十六进制串并转换为bytearray
result = bytearray.fromhex(start_hex + remaining_hex)

# 验证结果
print(result)  # 输出 bytearray(b'\x14\x12\x13\x11i')
print(result == bytearray(b'\x14\x12\x13\x11\x69'))  # 输出 True

关键说明

  • Python打印bytearray时,会将可打印ASCII字符(如0x69对应字符i)直接显示为字符,而非十六进制转义序列,但字节值与目标完全一致,通过==比较可验证。
  • 你之前的方法错误在于:
    • 直接用bytearray(var, 'utf-8')会把x、1、4作为普通字符编码成对应字节(0x78、0x31、0x34),而非转换成0x14。
    • bytearray.fromhex(var.encode().hex())是把整个字符串的UTF-8编码字节转成十六进制再还原,自然会包含x、1、4的编码字节,不符合需求。

内容的提问来源于stack exchange,提问作者Nene Tetteh Wayo Akwetteh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 00:40:09