3

アスキーまたは拡張アスキー文字を印刷しようとしています。このコードを使用して:

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

ascii #255 が出力されますが、次のように 10 進数を使用して入力したいと思います。

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

myhex が '0xff' であるため機能しないため、'\xff' に変換する必要があります。「0x」を「\x」に置き換えるとエラーが発生します。

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

エラーが発生します: ValueError:無効な\ xエスケープ

問題を解決するには?誰でも助けることができますか?ターミナル/コンソールで 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 に答える