.format()和unicode字符串



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

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

结果是:

öd e

但它应该是:

öd e

尝试了很多编码、解码、unicodedata.normalize的东西,但似乎都不起作用。有人知道我做错了什么吗?谢谢你的帮助,请原谅我英语不好。Greetz,

BigZ

这对你有用吗?

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

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

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

最新更新