discord.py使用add_reaction报错错误码10014 Unknown Emoji如何解决
问题根源
你传入add_reaction方法的不是Discord API可识别的Unicode emoji实体,是Unicode转义序列的字面量字符串。你执行的reaction.encode('unicode-escape').decode('ASCII')操作会把原本的Unicode emoji转换为类似\U0001f30f的普通文本,此时字符串中的反斜杠、U、数字都是独立的普通字符,不是转义后的emoji本身,因此触发10014未知emoji报错。
解决方案
在传入add_reaction前,将字面量转义字符串转换为实际的Unicode emoji字符,修正后的代码如下:
file_ = filename print("classifying") reaction = classify(file_) reaction = str(reaction) # 先处理多余字符(对应你原本的[:-2]操作) reaction = reaction[:-2] # 将字面量转义序列转换为实际Unicode字符 reaction = reaction.encode('utf-8').decode('unicode-escape') print(reaction) await message.add_reaction(reaction)
验证方法
转换完成后可添加打印代码验证:
print(len(reaction))
单个emoji的字符长度为1,若输出长度大于1则说明转换未成功,可检查处理多余字符的步骤是否截断了正确的转义序列。
内容的提问来源于stack exchange,提问作者Frikallo
相关产品推荐
相关产品推荐

