首页 > 解决方案 > 为什么 .add_reaction 不适用于 unicode 表情符号?

问题描述

我似乎无法让这一行代码输出除了BAD REQUEST Unknown Emoji

await dBot.add_reaction(message,"\\U00000031")

我在网上找不到任何理由为什么这不起作用。我犯了什么奇妙的菜鸟错误?

标签: python-3.xdiscord.py

解决方案


您使用的字符串不是转义的 Unicode 字符,而是转义的反斜杠字符后跟八位数字字符。您可能只需要文字中的一个反斜杠,这将使 Python 可以按照您的意图将文字解析为单个字符。不过,我仍然不确定这会达到你的预期,因为"\U00000031"它是角色'1',而不是表情符号。

从您下面的评论中,听起来您真正想要的表情符号是由两个 Unicode 代码点组成的。第一个只是'1'我上面讨论的普通字符,你不需要任何转义来编写它。第二个字符是U+20E3('COMBINING ENCLOSING KEYCAP'),它可以用 Python 文字写成'\u20E3''\U000020E3'。这会在前一个字符周围放置一个键盘键图像,因此序列"1\u20e3"将呈现为 1⃣(我的浏览器处理得不太好,但你的可能)。我不确定,但我相当有信心 Discord 会接受这一点,如果它完全支持1您正在寻找的关键表情符号(我希望它确实如此)。


推荐阅读