在Python 3和2中工作的Unicode文字
所以我有一个Python脚本,我只是为了方便起见而使用python 3.2和2.7。
有没有一种方法可以让Unicode字符在这两个工作? 例如
#coding: utf-8 whatever = 'שלום'
上面的代码需要在python 2.x(u“)和python 3.x中使用一个unicodestring,这个”u“会导致语法错误。
无论如何,我find了答案,我需要的只是:
from __future__ import unicode_literals
我仍然发布这个问题,因为https://meta.stackexchange.com/questions/49922/should-i-continue-adding-a-question-if-i-have-found-the-answer-myself
对于好奇,这是我正在工作: http : //code.google.com/p/pytitle/
编辑 – 自Python 3.3以来, u''
文字再次工作,所以u()
函数是不需要的。
最好的select是在Python 2中创build一个从string对象创buildunicode对象的方法,但将string对象留在Python 3中(因为它们已经是unicode)。
import sys if sys.version < '3': import codecs def u(x): return codecs.unicode_escape_decode(x)[0] else: def u(x): return x
你会这样使用它:
>>> print(u('\u00dcnic\u00f6de')) Ünicöde >>> print(u('\xdcnic\N{Latin Small Letter O with diaeresis}de')) Ünicöde