当字符串中的字符如é或ö时,Python字符串格式宽度错误

时间:2012-04-03 09:59:08

标签: python string format

使用简单的字段宽度说明符,当字符串包含“欧洲”字符时,列会“更薄”。我有一个小脚本来打印Django DB中的各个字段(last_name,first_name,email等),字符串中每个字符的列数少于1个字符

示例:

         Johansen
       lövström

使用"%20s" % field.encode('utf-8')

打印

有什么想法吗? (以及如何修复)

1 个答案:

答案 0 :(得分:4)

嗯,ö编码为UTF-8中的两个字节。并且您的格式指定了20个字节。

您仍然可以尝试在unicode字符串世界中进行格式化,其中%20s表示20个字符,并将格式化结果转换为utf-8。