Python:UTF-8十六进制到UTF-16十进制

时间:2017-03-21 09:52:05

标签: python utf-8 hex

我有一个中国汉字“烷烃”(U + 70F7) UTF-8(十六进制) - 表示0xE7 0x83 0xB7(e783b7)。 (见http://www.fileformat.info/info/unicode/char/70f7/index.htm

我需要将此字符串'e783b7'转换为小数值28.919(十进制UTF-16)。

由于我现在在这个问题上花了一个小时,我认为在stackoverflow上提问会更快

非常感谢

博士。眼镜蛇

1 个答案:

答案 0 :(得分:3)

使用ord内置函数,如下所示:

>>> print('\u70f7')
烷
>>> print(ord('\u70f7'))
28919

如果你只有一个十六进制字符串(适用于Python 2和3):

>>> s = bytearray.fromhex('e783b7').decode('utf-8')
>>> s
u'\u70f7'
>>> print(s)
烷