【问题标题】:How to make Python var='\\x' + "FF" as 1 byte?如何使 Python var='\\x' + "FF" 为 1 个字节?
【发布时间】:2019-07-11 22:44:03
【问题描述】:

示例代码:

hexVar = '1D' # i need this to be dynamically allocated
var1 = '\\x' + hexVar
print "var1 len: ", len(var1) # gives me 4 instead of 1

发送到 socks udp 关联请求格式时,我需要此 var1 为 1 个字节

【问题讨论】:

  • 将字符串转换为integer,然后转换为chr(),您可以使用代码b"\x1d"编码为单个bytes,您可以将其发送到套接字中

标签: python hex


【解决方案1】:

您可以将文本转换为整数(以 16 为基数),将下一个整数转换为 char,以及使用代码 b"\x1d" 将 char 编码为单字节

hexVar = '1D'
integer = int(hexVar, 16)
char = chr(integer)
var1 = char.encode()
print("var1 len: ", len(var1), var1) #

结果

var1 len:  1 b'\x1d'

编辑:

import binascii

hexVar = '1D'
var1 = binascii.a2b_hex(hexVar)

print("var1 len: ", len(var1), var1)

import binascii

hexVar = '1D'
var1 = binascii.unhexlify(hexVar)

print("var1 len: ", len(var1), var1)

【讨论】:

    猜你喜欢
    • 2013-06-16
    • 2023-03-14
    • 1970-01-01
    • 2013-04-12
    • 2011-03-31
    • 2018-09-25
    • 2014-09-24
    • 1970-01-01
    • 2012-05-25
    相关资源
    最近更新 更多