在 python3
中遇到了一个编码问题,就是字符串中含有 unicode
编码,如下
s = '\\u4e2\\u56fd'
上面的字符串应该如何解码呢?
我不知道有没有相应的库函数能做到,这里提供一个手动做的办法。
问题:对字符串进行手动转义
chr(number) 返回number的值对应unicode
例:
>>> u = 0x56fd
>>> s = chr(u)
>>> print(s)
国
所以这里有一个思路是,遍历字符串,遇到r'u'就取出后四个字符,将其变为整型,然后使用chr()函数转为unicode并拼接
PS:十六进制字符串转整型可用函数int()
例:
>>> int('56fd', 16)
22269