You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中列表追加含Emoji句子时保留Emoji而非转Unicode的问题

解决Python拆分含新Emoji字符串时的Unicode转义显示问题

问题本质

你看到的\U0001faf0🏻只是Python打印列表对象时的转义表示,实际字符串中的Emoji是正常存储的——Python的repr()方法(列表打印时会调用元素的repr)会把非ASCII字符转成Unicode转义序列,但元素本身的真实值并没有被改变。

验证真实内容

直接打印列表中的Emoji元素,而不是打印整个列表,就能看到正常的Emoji:

original_str = 'I am having positive vibe 🫰🏻🫰🏻🫰🏻🫰🏻🫰🏻'
split_list = original_str.split()
print(split_list[-1])  # 输出:🫰🏻🫰🏻🫰🏻🫰🏻🫰🏻

处理转义序列还原(如果确实需要)

如果是从保存的转义字符串(比如读取文件得到的\U0001faf0🏻文本)还原Emoji,按以下步骤操作:

  1. 确保emoji库是最新版本(新Emoji需要最新支持):
    pip install --upgrade emoji
    
  2. 先解码Unicode转义序列,再处理肤色修饰符:
    import emoji
    
    # 假设你拿到的是转义后的字符串
    escaped_emoji_str = r'\U0001faf0\U0001f3fb\U0001faf0\U0001f3fb'
    # 解码转义序列
    decoded_str = escaped_emoji_str.encode('utf-8').decode('unicode_escape')
    # 用emoji库确保渲染正确(可选,针对极端情况)
    rendered_emoji = emoji.emojize(decoded_str, use_aliases=False)
    print(rendered_emoji)  # 输出:🫰🏻🫰🏻
    

注意事项

  • 拆分字符串时用原生str.split()不会破坏Emoji,因为Emoji是单个Unicode字符(带肤色修饰符的是组合字符,但split会把整个组合当成一个单元)。
  • 不要用string.encode()直接处理,这会导致编码混乱,应该用Unicode转义解码的方式。

内容的提问来源于stack exchange,提问作者Rakhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 05:13:33