Попытка вывести символы Юникода на консоль с помощью string.format()

ниже приведен рассматриваемый фрагмент:

print '{:─^10}'.format('') # Print '─' character 10 times

Я использую это для создания красивых границ консоли и тому подобного. Проблема в том, что выполнение этого в моем py-файле с # кодировкой UTF-8 дает мне: ValueError: Invalid convert Specification

Если я запускаю этот же скрипт в оболочке Python, он выдает экранированные символы: '\xc4\xc4\xc4\x...'

Я не знаю, как (в моем скрипте) заставить это распечатать символ '─'. Он может нормально печатать символ '─', если я использую print '─' из-за кодировки UTF-8, но по какой-то причине он не позволяет это сделать. функцию string.format().

Какие-либо предложения? Я уверен, что это легко исправить, но я ОЧЕНЬ новичок в программировании на Python.

Заранее спасибо.


person Aedaeum    schedule 09.12.2011    source источник


Ответы (1)


Предполагая, что вы используете Python2, вам нужно использовать строки unicode (u''):

print u'{:─^10}'.format(u'')
person ekhumoro    schedule 09.12.2011
comment
вау Не могу поверить, что пропустил это. Я попробовал u перед '{:─^10}', но не подумал поместить его в аргумент формата. Спасибо большое! Я знал, что это будет просто, лол - person Aedaeum; 10.12.2011