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

2024-06-07 15:40:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图打印ascii或扩展ascii字符。使用此代码:

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

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

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

它不工作,因为zmyhex是'0xff',所以我需要转换成'\xff'。将“0x”替换为“\x”时出错。

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

将给出错误:ValueError:invalid\x escape

如何解决这个问题?有人能帮忙吗?我要在终端/控制台中打印char->;ÿ的目标。


Tags: 代码错误ascii数字字符numreplaceprint
2条回答

你要找的是

chr(255)

在python2中,它给您一个二进制值为255的字符。如果您将其打印到使用UTF8的终端,它将显示为?(或类似),因为终端不知道如何处理它。要将其转换为unicode代码点,可以decode它:

chr(255).decode('latin1')

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

你也可以在python2中使用

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

相关问题 更多 >

    热门问题