如何在Tweepy发送的推文状态文本中嵌入并正常显示emoji表情
你输入的U+1F600属于Unicode码点的文本表示,是普通字符串内容,Python不会自动将其解析为对应的emoji字符,因此发送到推特后只会显示字面量文本,无法渲染为表情图片。可以通过以下两种方案解决:
方案1:直接输入emoji字符(无需修改代码)
现有主流桌面操作系统都自带emoji输入面板,直接输入对应emoji字符即可正常发送显示:
- macOS:按
Control + Command + 空格调出emoji面板选择对应表情 - Windows:按
Win + 句点(.)调出emoji面板选择对应表情 - Linux桌面环境:多数可按
Ctrl + 句点(.)调出emoji面板,或使用系统自带的emoji输入工具
方案2:修改代码自动转换Unicode码点为emoji
如果你需要保留输入U+XXXX格式码点的使用习惯,可以新增正则匹配转换逻辑,修改后的代码如下:
import re comment = input("[Reply with Comment to tweet:] ") # 匹配U+开头的Unicode码点并转换为对应字符 def code_to_emoji(match): unicode_code = match.group(1) return chr(int(unicode_code, 16)) comment = re.sub(r'U\+([0-9A-Fa-f]+)', code_to_emoji, comment) comment_formated="@{0} {1}".format(screen_name,comment) api.update_status(status = comment_formated, in_reply_to_status_id = id_str)
修改后输入This is a smile U+1F600,代码会自动将U+1F600转换为对应的笑脸emoji,发送后即可在浏览器端正常显示表情图片。
内容的提问来源于stack exchange,提问作者ibexy
相关产品推荐
相关产品推荐

