python - >替换转义字符以将十六进制字符串从0x转换为\ x

时间:2012-05-17 10:14:57

标签: python hex ansi-escape

我正在尝试打印ascii或扩展的ascii字符。使用此代码:

print '\xff'.decode('latin-1')

它将打印ascii#255,但现在我想输入使用十进制数字,如下所示:

num=255
myhex=hex(num) 
print myhex.decode('latin-1')

它不起作用因为myhex是'0xff',所以我需要转换为'\ xff'。用'\ x'替换'0x'给我错误。

myhex.replace('0x','\x') 

会给我错误: ValueError:invalid \ x escape

如何解决问题?谁有人可以帮忙?我想要打印char的目标 - > ÿ在终端/控制台。

2 个答案:

答案 0 :(得分:3)

你要搜索的是

chr(255)

在python2中,它为您提供二进制值为255的字符。如果您将其打印到使用UTF8的终端,它将显示为?(或类似),因为终端不知道该怎么做要将其转换为它的unicode代码点,您可以decode

chr(255).decode('latin1')

在python3中,chr(255)已经为您提供了unicode字符'LATIN SMALL LETTER Y WITH DIAERESIS'

你也可以在python2中使用

做同样的事情
unichr(255)

答案 1 :(得分:1)

>>> print chr(255).decode("latin-1")
ÿ