Найти - Пользователи
Полная версия: Unicode console/shell под Windows?
Начало » Python для новичков » Unicode console/shell под Windows?
1 2
Kultom
Dwarf
ok. Ни кого не хотел обидеть.
Не думал что вам нужно в консоль такую специфичную графику выводить. Тогда, наверное, лучше вообще уйти от консольного интерфейса.

Я в своих программах, которые писал чисто для себя, использую только обычные символы, даже если нужно что-то типа “β = …” пишу “бета = …”

Решением проблемы было уход от проблемы:)
Dwarf
если нужно что-то типа “β = …” пишу “бета = …”
Это ведь убого, вы понимаете.

Решением проблемы было уход от проблемы:)
На самом деле вполне себе работает решение, которое я уже дважды приводил по ссылке на хабр
# -*- 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 # Ошибка? Всё равно какая - работаем по-старому...
Пишем этот код в отдельный файл, закидываем его куда-нибудь в PYTHONPATH, далее импортируем в основную программу и вызываем setup_console(). После этого в cmd.exe вполне себе выводится всякая “экзотика”.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB