Выровнять текст 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.

Ответы на вопрос(1)

Ваш ответ на вопрос