如何在Python中打印Unicode字符?

我想做一个词典,英文单词指向俄语和法语的翻译。

如何在Python中打印unicode字符? 另外,你如何将unicode字符存储在一个variables?

要在您的Python源代码中包含Unicode字符,您可以在string中使用\u0123forms的Unicode转义字符 ,并将string字面值前缀为'u'。

以下是在Python交互式控制台中运行的示例:

 >>> print u'\u0420\u043e\u0441\u0441\u0438\u044f' Россия 

如此声明的string是Unicodetypes的variables,如Python Unicode文档中所述 。

如果运行上述命令不能正确显示文本,也许你的terminal不能显示Unicode字符。

有关从文件读取Unicode数据的信息,请参阅此答案:

从Python中的文件读取字符

在Python中打印一个unicode字符:

直接从python解释器打印一个Unicode字符:

 el@apollo:~$ python Python 2.7.3 >>> print u'\u2713' ✓ 

Unicode字符u'\u2713'是复选标记。 解释器在屏幕上打印复选标记。

从python脚本打印一个unicode字符:

把它放在test.py中:

 #!/usr/bin/python print("here is your checkmark: " + u'\u2713'); 

像这样运行它:

 el@apollo:~$ python test.py here is your checkmark: ✓ 

如果它不显示复选标记,那么问题可能在其他地方,如terminal设置或您正在做的streamredirect。

将unicode字符存储在文件中:

保存到文件:foo.py:

 #!/usr/bin/python -tt # -*- coding: utf-8 -*- import codecs import sys UTF8Writer = codecs.getwriter('utf8') sys.stdout = UTF8Writer(sys.stdout) print(u'e with obfuscation: é') 

运行它并输出到文件:

 python foo.py > tmp.txt 

打开tmp.txt,看里面,你看到这个:

 el@apollo:~$ cat tmp.txt e with obfuscation: é 

因此,你已经保存了unicode e上的一个模糊标记到一个文件。

在Python 2中,用u声明unicodestring,就像在u"猫"一样,然后分别使用decode()encode()来转换unicode和unicode。

在Python 3中相当容易。在这里可以find一个非常好的概述。 那个介绍给我澄清了很多东西。

我在Windows下使用Portable winpython,它包含IPython QT控制台,我可以实现以下function。

 >>>print ("結婚")結婚>>>print ("おはよう")おはよう>>>str = "結婚" >>>print (str)結婚 

您的控制台解释器应该支持unicode以显示unicode字符。

如果你试图print() Unicode,并获得ascii编解码器错误 ,检查出这个页面 ,其中TLDR是export PYTHONIOENCODING=UTF-8之前启动python(该variables控制控制台尝试的字节序列将您的string数据编码为)。 在内部,Python3默认使用UTF-8(请参阅Unicode HOWTO ),所以这不是问题; 你可以把Unicode放在string中,如其他答案和注释所示。 当你试图将这些数据发送到你的控制台时,就会发生问题。 Python认为你的控制台只能处理ascii。 其他答案中的一些说:“首先将其写入文件”,但是请注意,它们指定了编码(UTF-8)(因此,Python在写入时不会改变任何内容),然后使用读取方法只是吐出字节而不考虑编码的文件,这就是为什么工作。