我使用emojis的unicode值创建了两个带有正负emojis的数组:
positive = [
u'\U0001F600',
u'\U0001F601',
u'\U0001F602',
u'\U0001F923',
u'\U0001F603',
u'\U0001F604',
u'\U0001F605',
u'\U0001F606',
u'\U0001F609',
u'\U0001F60A',
u'\U0001F60B',
u'\U0001F60E',
u'\U0001F60D',
u'\U0001F618',
u'\U0001F617',
u'\U0001F619',
u'\U0001F61A',
u'\U0000263A',
u'\U0001F642',
u'\U0001F917',
u'\U0001F60F',
u'\U0001F60C',
u'\U0001F61B',
u'\U0001F61C',
u'\U0001F61D',
u'\U0001F924',
u'\U0001F643',
u'\U0001F62C']
negative = [
u'\U0001F610',
u'\U0001F611',
u'\U0001F636',
u'\U0001F644',
u'\U0001F60F',
u'\U0001F623',
u'\U0001F625',
u'\U0001F62E',
u'\U0001F910',
u'\U0001F62F',
u'\U0001F62A',
u'\U0001F62B',
u'\U0001F634',
u'\U0001F612',
u'\U0001F613',
u'\U0001F614',
u'\U0001F615',
u'\U0001F641',
u'\U0001F616',
u'\U0001F61E',
u'\U0001F61F',
u'\U0001F624',
u'\U0001F622',
u'\U0001F62D',
u'\U0001F626',
u'\U0001F627',
u'\U0001F628',
u'\U0001F629',
u'\U0001F630',
u'\U0001F631',
u'\U0001F635',
u'\U0001F621',
u'\U0001F620',
u'\U0001F637',
u'\U0001F912',
u'\U0001F915',
u'\U0001F922',
u'\U0001F927']
但是当我打印正面[0]时,我会回到这个奇怪的角色而不是表情符号:
�
我正在使用Amazon Linux和使用python-3.4的EC2机器上工作。 相同的代码可以从我的Macbook中按预期工作。
答案 0 :(得分:0)
问题不是Python问题。 Mac支持终端中可以打印这些unicode字符的字体。
您使用的情况不支持相同的字体。
如果有问题的设备支持这些unicode值,它们将正确打印。
我测试了一个标准的macOS SSH终端到Ubuntu,它和原生Mac一样。
答案 1 :(得分:0)
您好Daniel Haviv,
尝试此操作:
print(positive[0].encode('utf-8'))
您可以在此处阅读更多内容Python 2.x’s Unicode Support
更新:之前的解决方案无效,请尝试以下方法:
import sys
import codecs
sys.stdout = codecs.getwriter('utf8')(sys.stdout)
print(positive[0])
我找到了来自Setting the correct encoding when piping stdout in Python
的解决方案答案 2 :(得分:0)
问题是我在screen
下运行