Форум сайта python.su
0
Dwarf
ok. Ни кого не хотел обидеть.
Не думал что вам нужно в консоль такую специфичную графику выводить. Тогда, наверное, лучше вообще уйти от консольного интерфейса.
Я в своих программах, которые писал чисто для себя, использую только обычные символы, даже если нужно что-то типа “β = …” пишу “бета = …”
Решением проблемы было уход от проблемы:)
Отредактировано Kultom (Янв. 10, 2013 08:36:38)
Офлайн
0
если нужно что-то типа “β = …” пишу “бета = …”Это ведь убого, вы понимаете.
Решением проблемы было уход от проблемы:)На самом деле вполне себе работает решение, которое я уже дважды приводил по ссылке на хабр
# -*- coding: utf-8 -*- import sys import codecs def setup_console(sys_enc="utf-8"): reload(sys) try: # для win32 вызываем системную библиотечную функцию if sys.platform.startswith("win"): import ctypes enc = "cp%d" % ctypes.windll.kernel32.GetOEMCP() #TODO: проверить на win64/python64 else: # для Linux всё, кажется, есть и так enc = (sys.stdout.encoding if sys.stdout.isatty() else sys.stderr.encoding if sys.stderr.isatty() else sys.getfilesystemencoding() or sys_enc) # кодировка для sys sys.setdefaultencoding(sys_enc) # переопределяем стандартные потоки вывода, если они не перенаправлены if sys.stdout.isatty() and sys.stdout.encoding != enc: sys.stdout = codecs.getwriter(enc)(sys.stdout, 'replace') if sys.stderr.isatty() and sys.stderr.encoding != enc: sys.stderr = codecs.getwriter(enc)(sys.stderr, 'replace') except: pass # Ошибка? Всё равно какая - работаем по-старому...
Отредактировано Dwarf (Янв. 10, 2013 14:11:14)
Офлайн