首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向空闲/终端显示表情符号的方法?UnicodeEncodeError - Tk中不支持非BMP字符

向空闲/终端显示表情符号的方法?UnicodeEncodeError - Tk中不支持非BMP字符
EN

Stack Overflow用户
提问于 2019-10-29 07:04:02
回答 1查看 94关注 0票数 0

我正在尝试打印这个示例代码

代码语言:javascript
复制
print ("Hello \U0001F914")

现在,如果我在MacOS终端上运行这段代码,它会打印出思考的表情符号,如果我在linux终端上运行,它也会用另一种表情符号打印出来。当我尝试在IDLE上运行它时,我遇到了这个错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    print ("Hello \U0001F914")
UnicodeEncodeError: 'UCS-2' codec can't encode characters in position 6-6: Non-BMP character not supported in Tk

有没有办法让它在可以处理表情符号的解释器上打印,或者在不能显示表情符号的解释器上打印,只需用某种东西替换它,或者根本不显示它,而不会崩溃?

我现在的想法是使用OS库,并可能获得有关用户正在运行的信息,然后相应地更改已执行的代码。

如果有人能想出一个解决方案,我将不胜感激!谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-31 02:46:31

这在正常情况下是不可能的--而且需要一项过于非凡的壮举才能真正可行。

事实很简单,TCL,支持tkinter的技术堆栈不支持BMP以外的Unicode,即odepoint大于0xffff的任何字符。

唯一的解决办法是要么重写所有的TCL部分以支持它,要么添加一层代码来拦截传递给一些文本处理方法的所有字符串,并将这些字符替换为预先呈现的内联图像(将其正确地放入文本流中将需要一些工作-我甚至不确定是否可以在tknter中具有内联图像)。

因此,如果您需要在用Python创建的GUI中使用这些字符,方法是在GUI中使用Qt或GTK;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58599461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档