3

我正在尝试打印 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 -> ÿ 的目标。

4

2 回答 2

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)
于 2012-05-17T10:20:57.577 回答
1
>>> print chr(255).decode("latin-1")
ÿ
于 2012-05-17T10:46:06.303 回答