我想写出一个平面文件一些中国或俄语或各种非英语字符集用于测试目的。 我陷入了如何输出一个Unicode十六进制或十进制值,它对应的字符。
例如在Python中,如果你有字符像一个硬编码集абвгдежзийкл
你将会分配value = u"абвгдежзийкл"
并没有什么问题。
然而,如果你有一个十进制或十六进制小数像1081/0439存储在一个变量,你想打印出来与它对应的实际字符(而不仅仅是输出0x439)怎么会这样做? 上述的Unicode十进制/十六进制值是指й
。
Python的2:使用unichr()
>>> print(unichr(1081))
й
Python的3:使用chr()
>>> print(chr(1081))
й
所以,这个问题的答案是:
- 转换的十六进制值与为十进制
int(hex_value, 16)
- 然后得到与相应的〜应变
chr()
总结一下:
>>> print(chr(int('0x897F', 16)))
西
如果您遇到错误:
ValueError异常:unichr()精氨酸不在范围内(0x10000的)(窄Python构建)
当尝试使用十六进制值转换unichr
,你可以通过做这样的事情得到解决的错误:
>>> n = int('0001f600', 16)
>>> s = '\\U{:0>8X}'.format(n)
>>> s
'\\U0001F600'
>>> binary = s.decode('unicode-escape')
>>> print(binary)