我想要一本字典,其中英语单词指向俄罗斯和法语翻译。
如何打印出Unicode字符在Python? 此外,你如何存储Unicode字符的变量?
我想要一本字典,其中英语单词指向俄罗斯和法语翻译。
如何打印出Unicode字符在Python? 此外,你如何存储Unicode字符的变量?
要在你的Python源代码中的Unicode字符,你可以使用的Unicode转义字符形式\u0123
在你的字符串,和前缀字符串文字与“U”。
下面是在Python交互式控制台运行的例子:
>>> print u'\u0420\u043e\u0441\u0441\u0438\u044f'
Россия
声明这样的字符串是Unicode的类型变量,如所描述的Python的Unicode文档 。
如果运行上面的命令不会为你正确地显示文字,也许你的终端不能够显示Unicode字符的。
有关从文件中读取Unicode数据信息,请参见这样的回答:
汉字在Python从文件中读取
直接从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: ✓
如果没有显示你对号,那么问题可能是在其他地方,就像你与流重定向做终端设置什么的。
在文件中存储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é上有一个模糊标记的文件。
如果你想print()
的Unicode,并获得ASCII码编解码器的错误 ,看看这个页面中,TLDR这是做export PYTHONIOENCODING=UTF-8
发射了蟒蛇之前(此变量控制何种顺序字节的控制台尝试编码您的字符串数据)。 在内部,Python3默认使用UTF-8(见Unicode的HOWTO ),所以这不是问题; 你可以把在的Unicode字符串,如在其他的答案和评论看到。 当你尝试并获得这个数据到您的控制台,这个问题会发生这。 蟒蛇认为您的控制台只能处理ASCII。 一些其他的答案说,“它写入一个文件,第一个”但请注意,他们规定这样做的(所以,Python不改变任何文字)的编码(UTF-8),然后使用方法阅读刚刚吐出来的是字节没有编码任何方面,这就是为什么工作的文件。
在Python 2,你声明Unicode字符串与u
,如u"猫"
和使用decode()
和encode()
来转换为Unicode,分别。
它更容易颇有几分在Python 3.一个很好的概述,可以发现在这里 。 该演示文稿澄清了很多东西给我。
我使用的便携式winpython在Windows中,它包括IPython中QT控制台,我可以做到以下几点。
>>>print ("結婚")
結婚
>>>print ("おはよう")
おはよう
>>>str = "結婚"
>>>print (str)
結婚
控制台解释应该支持以显示Unicode字符的Unicode。
尚未被添加到还有一件事
在Python 2,如果你想打印有Unicode和使用可变.format()
那么这样做(让正被格式化的unicode字符串与基础线u''
:
>>> text = "Université de Montréal"
>>> print(u"This is unicode: {}".format(text))
>>> This is unicode: Université de Montréal
这修复UTF-8打印在python:
UTF8Writer = codecs.getwriter('utf8')
sys.stdout = UTF8Writer(sys.stdout)