我有两个UTF-8字节\xf0\x9f\x93\xb1\xf0\x9f\x9a\xac
,我希望将其拆分为\xf0\x9f\x93\xb1
,\xf0\x9f\x9a\xac
这是最有效的方法
我现在正在做的是分成\xf0
问题
如果我按照bigOTHER的建议再次对其进行解码和编码,我会得到错误的字节返回
>>> s ='\xf0\x9f\x93\xb1\xf0\x9f\x9a\xac'
>>> u = s.decode("utf-8")
>>> u
u'\U0001f4f1\U0001f6ac'
>>> u[0].encode("utf-8")
'\xed\xa0\xbd'
>>> u[1].encode("utf-8")
'\xed\xb3\xb1'
>>> u[0]
u'\ud83d'
>>> u[1]
u'\udcf1'
解决:
这是因为我的python是用UCS2而不是UCS4编译的,而前者是默认的。有关详细信息,请查看此Question
答案 0 :(得分:3)
使用decode-encode执行此操作:
>>> u = s.decode("utf-8")
>>> u
u'\U0001f4f1\U0001f6ac '
>>> u[0].encode("utf-8")
'\xf0\x9f\x93\xb1'
>>> u[1].encode("utf-8")
'\xf0\x9f\x9a\xac'
答案 1 :(得分:0)
使用解码方法。它将其分成字节本身。因此,您可以在调用解码后直接访问。