在python中从十六进制字符转换为Unicode字符

Kev*_*rke 5 python unicode hex codepoint

十六进制字符串'\xd3'也可以表示为:Ó.

我发现将十六进制字符串的字符表示形式提供给控制台的最简单方法是:

print unichr(ord('\xd3'))
Run Code Online (Sandbox Code Playgroud)

或者用英语,将十六进制字符串转换为数字,然后将该数字转换为unicode代码点,最后将其输出到屏幕.这似乎是一个额外的步骤.有没有更简单的方法?

agf*_*agf 11

print u'\xd3'
Run Code Online (Sandbox Code Playgroud)

你需要做的就是.你只需要以某种方式告诉Python它是一个unicode文字; 领导u那样做.它甚至可以用于多个角色.

如果你不是在谈论文字,而是变量:

codepoints = '\xd3\xd3'
print codepoints.decode("latin-1")
Run Code Online (Sandbox Code Playgroud)

编辑:print如果与终端编码不兼容,则在指定时指定特定编码将无效,因此printencode(sys.stdout.encoding)自动执行.谢谢@ThomasK.

  • 它在Python3中有点好(Python2正在落伍),但是即使在最好的日子里,Unicode和Python也不能相处得很好,而且你不能使用Python的`re`库来获取UTS#18的1级要求.Matthew Barnett的[regex库](http://pypi.python.org/pypi/regex)对于Python2和Python3都有很大帮助.请参阅[我的Unicode支持枪战谈话]幻灯片6中的图表(http://training.perl.com/OSCON2011/index.html),看看MRAB的`regex` lib比普通的Python`re更好.唉,你仍然在UCS-²/ 4上有Python的**致命的多重人格障碍**. (2认同)
  • **版主注** _此答案下的几条评论已被删除,因为它们提供的噪​​音多于信号。请尽量保持评论具有建设性和主题,并与手头的答案相关。如果您想进行“侧面聊天”,请使用聊天系统。_ (2认同)