如何用该代码点将十六进制字符串转换为字符?

Eve*_*lse 4 python string hex ascii python-2.x

我有绳子x = '0x32',想把它变成y = '\x32'
请注意len(x) == 4len(y) == 1

我尝试使用z = x.replace("0", "\\"),但这会导致z = '\\x32'len(z) == 4。我该如何实现?

Wil*_*sem 5

您不必那么费劲:您可以使用int(..,16)解析形式为的十六进制字符串0x...。接下来,您只需使用chr(..)该代码即可将该数字转换为具有Unicode的字符(并且如果代码小于128 ASCII):

y = chr(int(x,16))
Run Code Online (Sandbox Code Playgroud)

结果是:

>>> chr(int(x,16))
'2'
Run Code Online (Sandbox Code Playgroud)

但是\x32等于'2'(您可以在ASCII表中查找):

>>> chr(int(x,16)) == '\x32'
True
Run Code Online (Sandbox Code Playgroud)

和:

>>> len(chr(int(x,16)))
1
Run Code Online (Sandbox Code Playgroud)