ord()和Unicode表没有给出相同的数字

时间:2013-10-13 05:17:59

标签: python

根据Python文档,ord()以Unicode形式给出相应的数字。当我进入

ord('A')

我得到了数字65.但是,当我在名为Unicode Table(http://unicode-table.com/en)的站点中检查“A”的Unicode编号时,它表示该数字为41.

为什么会这样?什么是Unicode的正确参考指南?

2 个答案:

答案 0 :(得分:9)

“41”是十六进制的。

>>> ord("A")
65
>>> hex(ord("A"))
'0x41'
>>> int("41",base=16)
65

请注意,在您关联的页面顶部,您会看到0123456789ABCDEF,它会为您提供最后一位数字。

答案 1 :(得分:0)

ord()函数,至少在Python中,是基于ASCII表使用的。

以下是表格的link

在表格中,您可以轻松区分十六进制和ASCII码。

现在给你我自己的理解,并且正如@DSM明确提到的,ASCII码是十六进制的十进制十进制版本(原谅我糟糕的英语技能)。因为按照惯例或其他原因,在十六进制7F之后的两位数字被认为是负数,因此在127之后你看不到ASCII数字的十六进制版本。