Выровнять текст Unicode в окне терминала, используя моноширинный шрифт по умолчанию
Я извлекаю данные из Интернета и хочу выровнять их в таблице в окне терминала. Я могу выровнять текст хорошо в большинстве случаев, но когда текст содержит определенные символы или иностранные символы, вещи становятся грязными. Как я могу справиться с этими персонажами? Вот пример с проблемой в третьей строке вывода:
>>> items = "Apple tree", "Banana plant", "Orange 으르", "Goodbye"
>>> values = 100, 200, 300, 400
>>> for i, v in zip(items, values):
... print "%-15s : %-4s" % (i, v)
...
Apple tree : 100
Banana plant : 200
Orange 으르 : 300
Goodbye : 400
>>>
Примечание: все пункты указаны правильно."Orange"
закрывающие кавычки не отображаются правильно здесь при переполнении стека, но они хорошо отображаются в окне терминала.
ОБНОВИТЬ: Я добавил награду к этому вопросу. Я ищу решение, которое может быть реализовано без лишнего дополнительного кода и без использования внешних библиотек. Он также должен работать с Python 2.7+ и 3.x (условно, что тестирование версий и применение различных исправлений будет в порядке). Кроме того, он не должен требовать каких-либо дополнительных настроек системы или изменения шрифтов или изменения каких-либо настроек терминала стандартной установки Debian / Ubuntu.