在 Python 的控制台中显示 Emoji

Display Emoji in Python#39;s console(在 Python 的控制台中显示 Emoji)
本文介绍了在 Python 的控制台中显示 Emoji的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我想知道是否可以在 Windows 上的 Python 3 控制台中打印表情符号.实际上,为了避免以下错误:

I wonder if it's possible to print Emojis in a Python 3 console on Windows. Actually, to avoid the following error:

codec can't encode character 'U0001f44d' in position 10: character maps to  
<undefined>

我用过:

import emoji as moji
print(moji.emojize('Python is :thumbsup:', use_aliases=True).encode('unicode-
escape'))

也就是说,如预期的那样,打印正确的character:U0001f44d,没有任何exception.

which is, as expected, printing the right character:U0001f44d without any exception.

推荐答案

Windows 命令提示符对于 Unicode 字符有很多限制,尤其是那些基本多语言平面之外的字符(BMP,或 U+0000 到 U+FFFF).命令提示符默认为旧版 OEM 编码(美国 Windows 上为 cp437),并且对本地化编码之外的字符的字体支持有限.寻找一个对 UTF-8 有良好支持的 Python IDE.

The Windows command prompt has a lot of limitations with regards to Unicode characters, especially those outside the basic multilingual plane(BMP, or U+0000 to U+FFFF). The command prompt defaults to a legacy OEM encoding (cp437 on US Windows) and has limited font support for characters outside the localized encoding. Find a Python IDE that has good support for UTF-8.

查看各种 Unicode 字符的一种快速而简单的方法是写入文件并利用浏览器:

One quick-and-dirty way to see a wide variety of Unicode characters is to write to a file and leverage the browser:

import os
with open('test.htm','w',encoding='utf-8-sig') as f:
    f.write('U0001f44d')
os.startfile('test.htm')

这显示 在我的 Windows 10 系统上的最新 Chrome 浏览器中.

This displays in the latest Chrome browser on my Windows 10 system.

这篇关于在 Python 的控制台中显示 Emoji的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Multiprocessing on Windows breaks(Windows 上的多处理中断)
How to use a generator as an iterable with Multiprocessing map function(如何将生成器用作具有多处理映射功能的可迭代对象)
read multiple files using multiprocessing(使用多处理读取多个文件)
Why does importing module in #39;__main__#39; not allow multiprocessig to use module?(为什么在__main__中导入模块不允许multiprocessig使用模块?)
Trouble using a lock with multiprocessing.Pool: pickling error(使用带有 multiprocessing.Pool 的锁时遇到问题:酸洗错误)
Python sharing a dictionary between parallel processes(Python 在并行进程之间共享字典)