如何在 Python 中将单个字符转换为其十六进制 ASCII 值?
Posted
技术标签:
【中文标题】如何在 Python 中将单个字符转换为其十六进制 ASCII 值?【英文标题】:How do I convert a single character into its hex ASCII value in Python? 【发布时间】:2011-12-26 15:58:40 【问题描述】:我有兴趣接受单个角色。
c = 'c' # for example
hex_val_string = char_to_hex_string(c)
print hex_val_string
输出:
63
解决这个问题的最简单方法是什么?任何预定义的字符串库的东西?
【问题讨论】:
【参考方案1】:有几种方法可以做到这一点:
>>> hex(ord("c"))
'0x63'
>>> format(ord("c"), "x")
'63'
>>> import codecs
>>> codecs.encode(b"c", "hex")
b'63'
在 Python 2 上,您也可以像这样使用hex
encoding(不适用于 Python 3+):
>>> "c".encode("hex")
'63'
【讨论】:
"0:02x".format(ord('c'))
保留前导零,如果有的话。
@eryksun:在 Python 3 上,您可以改用 binascii.hexlify()
和 binascii.unhexlify()
。
使用大写 X
作为格式字符串将使用大写的 A-F 数字,如果这是首选的话。详情请见the docs。
在 Python 3 上使用 "c".encode("hex") 会引发 "LookupError: 'hex' 不是文本编码;使用 codecs.encode() 来处理任意编解码器"
@Nagev 字节到字节编码需要通过 Python 3 中的 codecs
模块调用:codecs.encode(b"c", "hex")
【参考方案2】:
这可能会有所帮助
import binascii
x = b'test'
x = binascii.hexlify(x)
y = str(x,'ascii')
print(x) # Outputs b'74657374' (hex encoding of "test")
print(y) # Outputs 74657374
x_unhexed = binascii.unhexlify(x)
print(x_unhexed) # Outputs b'test'
x_ascii = str(x_unhexed,'ascii')
print(x_ascii) # Outputs test
此代码包含将 ASCII 字符转换为十六进制的示例。在您的情况下,您想要使用的行是str(binascii.hexlify(c),'ascii')
。
【讨论】:
嗨,欢迎来到 ***。我对您代码中的 cmets 感到困惑(例如# x -> b'test'
)。我看不到源代码中的任何地方都使用了“测试”。我也认为将输出格式化为代码块也会有所帮助,以保留换行符。
b'test'
用于下一行。他所说的只是 x 是字符串“测试”,但前面的 b
表示它是字节格式。下一行将这些字节hexlify成一个新值
请注意,hexlify 似乎将值输出为字符串,因此单个字符将转换为 2 个字符(即数值),这对我来说是一个大问题,因为我的空间非常有限嵌入式设备(mifare 卡)【参考方案3】:
考虑到您的输入字符串在inputString
变量中,您可以简单地在该变量上应用.encode('utf-8').hex()
函数来获得结果。
inputString = "Hello"
outputString = inputString.encode('utf-8').hex()
结果将是48656c6c6f
。
【讨论】:
【参考方案4】:你可以这样做:
your_letter = input()
def ascii2hex(source):
return hex(ord(source))
print(ascii2hex(your_letter))
如需更多信息,请访问: https://www.programiz.com/python-programming/methods/built-in/hex
【讨论】:
【参考方案5】:使用 ord("a"); 获取 ascii 代码 将 ascii 转换为字符使用 chr(97)
【讨论】:
以上是关于如何在 Python 中将单个字符转换为其十六进制 ASCII 值?的主要内容,如果未能解决你的问题,请参考以下文章
在 python 中将字符转换为其 ascii 等价物的最简单方法是啥? [复制]