Неверная ширина формата строки Python, когда символы, такие как é или ö в строке - PullRequest
0 голосов
/ 03 апреля 2012

При использовании простого спецификатора ширины поля столбцы «тоньше», если строка содержит «европейские» символы.У меня есть небольшой скрипт для распечатки различных полей из базы данных Django (фамилия, имя, электронная почта и т. Д.), И столбцы на 1 символ меньше для каждого такого символа в строке

пример:

         Johansen
       lövström

Напечатано с использованием "%20s" % field.encode('utf-8')

Есть идеи, что происходит ??(и как исправить)

1 Ответ

4 голосов
/ 03 апреля 2012

Ну, ö кодируется как два байта в UTF-8.И ваш формат определяет 20 байтов.

Вы можете попытаться отформатировать, находясь в мире строковых юникодов, где% 20s будет означать 20 символов, и преобразовать форматированный результат в utf-8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...