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

Python开发Discord Bot无法使用部分Emoji问题求助

问题原因与解决方法

错误原因

你遇到的SyntaxError是因为Python对\U转义序列有严格规则:\U必须后跟完整的8位十六进制数字。

  • 能正常运行的\U0001F92E是符合要求的(1F92E前补0凑够8位),所以解析无问题。
  • 黑框Emoji的Unicode码点是4位(比如⬛的码点为U+2B1B),若强行用\U开头但只写4位,Python会判定转义序列不完整,抛出截断错误。

解决办法

方法1:直接复制Emoji字符

Python 3原生支持Unicode字符串,直接把目标Emoji复制到代码里最省心:

message.add_reaction("⬛")

方法2:匹配码点长度用对应转义符

  • 4位十六进制码点用\uXXXX格式:
    # 黑框⬛的码点是U+2B1B,对应写法
    message.add_reaction("\u2B1B")
    
  • 8位十六进制码点(超出基本多语言平面的Emoji)用\UXXXXXXXX格式,比如你之前的🤮:
    message.add_reaction("\U0001F92E")
    

方法3:使用raw字符串(不推荐)

若要保留转义写法,可在字符串前加r让Python不解析转义,但这种方式会把\U当成普通字符,需确保Discord能识别,一般不推荐:

message.add_reaction(r"\u2B1B")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 00:57:26