Python 2.7中如何将十六进制字符串转换为单个字节?
解决十六进制字符串转\x转义格式的方案
Hey Jim, no worries at all—we all have those days where our brain feels a little foggy! Let's sort this hex string escape problem out quickly.
核心思路其实很简单:把你的十六进制字符串按每两个字符一组拆分,然后给每组加上\x前缀,最后拼接起来就行。下面是几种常用编程语言的具体实现:
Python 实现
方法一:利用内置的字节转换(更简洁)
Python的bytes.fromhex()可以直接把十六进制字符串转成字节对象,再通过repr()获取它的转义字符串表示,最后去掉首尾的b'和'即可:
hex_str = "f70307d600017010" byte_data = bytes.fromhex(hex_str) escaped_str = repr(byte_data)[2:-1] print(escaped_str) # 输出: \xf7\x03\x07\xd6\x00\x01\x70\x10
方法二:手动拼接(更直观)
如果你想更清楚地看到每一步的处理,也可以手动拆分字符串并拼接:
hex_str = "f70307d600017010" escaped_str = ''.join([f'\\x{hex_str[i:i+2]}' for i in range(0, len(hex_str), 2)]) print(escaped_str)
JavaScript 实现
在JS里可以通过循环拆分字符串,逐个拼接转义前缀:
const hexStr = "f70307d600017010"; let escapedStr = ''; for (let i = 0; i < hexStr.length; i += 2) { const byte = hexStr.slice(i, i + 2); escapedStr += `\\x${byte}`; } console.log(escapedStr); // 输出: \xf7\x03\x07\xd6\x00\x01\x70\x10
不管用哪种语言,核心逻辑都是一致的——按两位一组拆分十六进制字符串,给每组加上\x前缀后拼接。如果是其他编程语言,只要照着这个思路实现就好啦!
内容的提问来源于stack exchange,提问作者Jim
相关产品推荐
相关产品推荐

