Python unicode codepoint to unicode character

sto*_*rry 15 python encoding

我正在尝试用平面文件写出一些中文,俄文或各种非英文字符集用于测试目的.我对如何将Unicode十六进制或十进制值输出到其对应的字符感到困惑.

例如在Python中,如果你有一个像????????????你所指定的硬编码字符集,value = u"????????????"没有问题.

但是,如果您有一个十进制或十六进制十进制,如1081/0439存储在一个变量中,并且您想用它的相应实际字符(而不仅仅是输出0x439)打印出来,那将如何完成?上面的Unicode十进制/十六进制值是指?.

NPE*_*NPE 23

Python 2:使用unichr():

>>> print(unichr(1081))
?
Run Code Online (Sandbox Code Playgroud)

Python 3:使用chr():

>>> print(chr(1081))
?
Run Code Online (Sandbox Code Playgroud)

  • 如果您的变量是具有十六进制数字的字符串,则可以使用`int(var,16)`将其转换为int。例如,`int('0x0439',16)`得到`1081`。 (2认同)
  • 注意:[`unichr`](https://docs.python.org/2/library/functions.html#unichr)仅适用于Python 2.在Python 3中,您只需使用[`chr`](https: //docs.python.org/3/library/functions.html#chr). (2认同)

Édo*_*pez 7

所以这个问题的答案是:

  1. 将十六进制值转换为十进制 int(hex_value, 16)
  2. 然后用 得到相应的字符串chr()

总结:

>>> print(chr(int('0x897F', 16)))
?
Run Code Online (Sandbox Code Playgroud)

  • 如果您显式指定基数,则“0x”是可选的,即“chr(int('897F', 16))”也可以工作 (2认同)