.format()和unicode字符串

时间:2014-09-30 13:38:47

标签: python unicode format

我试图在python 2.7.6中格式化一堆字符串。 一切正常,直到出现unicode标志。 这个简短的例子说明了我的问题:

    a = 'ö'
    b = 'd'
    c = 'e'

    print('{:2}{:2}{:2}').format(a, b, c)

结果是:

öde

但它应该是:

öde

用编码,解码,unicodedata.normalize尝试了很多东西,但似乎没什么用。 任何人都知道我做错了什么? 谢谢你的帮助,请原谅我糟糕的英语。 格尔茨,

BigZ

1 个答案:

答案 0 :(得分:1)

这对你有用吗?

>>> a = 'ö'
>>> b = 'd'
>>> c = 'e'
>>> print(u'{:2}{:2}{:2}'.format(a.decode('utf8'), b, c))
ö d e

这假设您的数据是utf8编码的。请注意,格式字符串是unicode。

此外,这在Python 3中似乎不是问题。