python3 字符串编码的问题

python3 中遇到了一个编码问题,就是字符串中含有 unicode 编码,如下

s = '\\u4e2\\u56fd'

上面的字符串应该如何解码呢?

阅读 3.4k
1 个回答

我不知道有没有相应的库函数能做到,这里提供一个手动做的办法。

问题:对字符串进行手动转义

chr(number) 返回number的值对应unicode
例:

>>> u = 0x56fd
>>> s = chr(u)
>>> print(s)
国

所以这里有一个思路是,遍历字符串,遇到r'u'就取出后四个字符,将其变为整型,然后使用chr()函数转为unicode并拼接

PS:十六进制字符串转整型可用函数int()
例:

>>> int('56fd', 16)
22269
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进