【问题标题】:How to convert UTF8 hex to Unicode codepoint in python如何在 python 中将 UTF8 十六进制转换为 Unicode 代码点
【发布时间】:2012-11-01 15:54:41
【问题描述】:

我正在制作一个配置文件,其中包含表情符号的 Unicode 和 SoftBank Unicode 的映射。现在我正在使用 python 程序从http://punchdrunker.github.com/iOSEmoji/table_html/ios6/index.html 中获取这些信息

但是有个问题,网页上的SoftBank Code是UTF8 hex,不是Unicode codepoint,怎么改成Unicode codePoint?

比如,我想把EE9095改成E415(第一个emoji表情)

我尝试这样做,但它没有工作

code.decode('utf-8')

但它只是没有用,代码是一样的,没有改变。 unix 命令 iconv 也不起作用

【问题讨论】:

  • 请在问题中添加“UTF8 hex”字符串的示例。

标签: python unicode utf-8 iconv emoji


【解决方案1】:

您确定code 实际上是用UTF-8 编码的吗?这对我有用:

>>> b'\xee\x90\x95'.decode('utf-8')
u'\ue415'

【讨论】:

  • 我从网页上抓取代码,它已经被编码了吗?,我这样做 code='ee9095' code.decode('utf-8')
  • @user1462782:'ee9095' 将是一个 6 字节的字符串('e'、'e'、'9'、'0'、'9'、'5')。这与'\xee\x90\x95' 不同,'\xee\x90\x95' 是一个 3 字节的字符串(0xee、0x90、0x95)。您需要使用例如将十六进制字符串 'ee9095' 转换为实际的字节序列。 bytearray.fromhex('ee9095').decode('utf-8')
【解决方案2】:

这个怎么样:

>>> 'EE9095'.decode('hex').decode('utf-8')
<<< u'\ue415'

【讨论】:

  • Python 3:bytes.fromhex('EE9095').decode('utf-8') -> '\ue415'
猜你喜欢
  • 2020-05-27
  • 2021-09-19
  • 2019-01-01
  • 2011-03-29
  • 2012-02-21
  • 2013-08-03
  • 1970-01-01
  • 2021-04-30
  • 1970-01-01
相关资源
最近更新 更多