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

时间:2011-08-09 16:44:36

标签: python unicode hex codepoint

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

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

print unichr(ord('\xd3'))

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

2 个答案:

答案 0 :(得分:11)

print u'\xd3'

你需要做的就是。你只需要以某种方式告诉Python它是一个unicode文字;领先的u就是这么做的。它甚至适用于多个角色。

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

codepoints = '\xd3\xd3'
print codepoints.decode("latin-1")

修改:print如果与您的终端编码不兼容,则指定特定编码将不起作用,因此请让print自动执行encode(sys.stdout.encoding)。谢谢@ThomasK。

答案 1 :(得分:0)

如果数据是这样的“ \ xe0 \ xa4 \ xb9 \ xe0 \ xa5 \ x88 \ xe0 \ xa4 \ xb2 \ xe0 \ xa5 \ x8b \ xe0 \ xa4 \ x95 \ xe0 \ xa4 \ xb2

sys.stdout.buffer.write(data) 

将打印

हैलो कल