Python:在Unicode转义的字符串上使用.format()

问题:

我使用的是Python 2.6.5。我的代码需要使用“多于或等于”的符号。在这里:

>>> s = u'\u2265'
>>> print s
>>> ≥
>>> print "{0}".format(s)
Traceback (most recent call last):
     File "<input>", line 1, in <module> 
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2265'
  in position 0: ordinal not in range(128)`  

为什么我会收到这个错误?有没有正确的方法来做到这一点?我需要使用.format()功能。

回答:

只是使第二个字符串也是一个unicode字符串

>>> s = u'\u2265'
>>> print s
≥
>>> print "{0}".format(s)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2265' in position 0: ordinal not in range(128)
>>> print u"{0}".format(s)
≥
>>> 

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Python: Using .format() on a Unicode-escaped string

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

49 − 45 =