Python:在Unicode转义的string上使用.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()函数。

2 Solutions collect form web for “Python:在Unicode转义的string上使用.format()”

只要使第二个string也是一个Unicodestring

 >>> 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) ≥ >>> 

unicode s需要unicode格式的string。

 >>> print u'{0}'.format(s) ≥ 
  • C ++ wchar_t和wstrings有什么“错误”? 什么是宽字符的替代品?
  • 规范Unicode
  • 如何检查string是unicode还是ascii?
  • Emacs模式来编辑JSON
  • 我如何删除非ASCII字符,但留下句点和空格使用Python?
  • 在Swift中使用Unicode代码点
  • 没有BOM的UTF-8和UTF-8有什么区别?
  • 具体的Javascript正则expression式重音字符(变音符号)
  • 获取Python可以编码的所有编码的列表
  • 我的PHP应用程序正确支持UTF-8吗?
  • 如何在Python中将string转换为小写