Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/104: Рейтинг темы: голосов - 104, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 204

Кириллица в консоли. Python 2.7

13.03.2013, 21:46. Показов 21033. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема с отображением русских букв в консоли.
Еще вчера все было нормально, сегодня что-то сдохло...
Миниатюры
Кириллица в консоли.  Python 2.7  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.03.2013, 21:46
Ответы с готовыми решениями:

Кириллица в консоли
Учусь использовать unittest в 2.7, тестирую поля формы. при запуске тестов вываливается ошибка AssertionError: != 'Cannot add empty...

Кириллица в консоли
Здравствуйте. Произошла вот такая проблема. Надеюсь, поможете. Написал легкую программу на C++, написал редактором Dev-C++ и...

Кириллица в консоли
#include "stdafx.h" #include <iostream.h> #include "seria.h" #include<windows.h> char bufRus; char* Rus(const char*...

13
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
13.03.2013, 22:08
Нет возможности проверить, но предположу, что дело в кодировке. Наверно, раньше была cp1251, а теперь - utf-8.

Да и вообще это не второй питон, тут же print - функция.
0
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 204
14.03.2013, 00:38  [ТС]
Цитата Сообщение от helter Посмотреть сообщение
Нет возможности проверить, но предположу, что дело в кодировке. Наверно, раньше была cp1251, а теперь - utf-8.

Да и вообще это не второй питон, тут же print - функция.
Второй, это я уже проверял, поставив скобки. Обычно их там нет.
Миниатюры
Кириллица в консоли.  Python 2.7  
0
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
14.03.2013, 00:52
Попробуйте "Преобразовать в ANSI".
0
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 204
14.03.2013, 01:03  [ТС]
qweqweqweq
Миниатюры
Кириллица в консоли.  Python 2.7  
0
363 / 334 / 38
Регистрация: 29.03.2011
Сообщений: 838
14.03.2013, 01:10
python2
Он по умолчанию думает, что файл в однобайтовой кодировке.
Попробуй вот-так:
Python
1
2
# -*- coding: utf-8 -*-
print 'Текстовая строка'
0
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 204
14.03.2013, 01:12  [ТС]
Но ведь еще вчера все работало и без этих строк.
Миниатюры
Кириллица в консоли.  Python 2.7  
0
363 / 334 / 38
Регистрация: 29.03.2011
Сообщений: 838
14.03.2013, 01:15
А попробуй Преобразовать в ANSI - в винде однобайтовая кодировка по умолчанию, если специально не задавать.
(Сам с этими кодировками намучался, терпеть их не могу)
0
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
14.03.2013, 01:19
У вас же файл в utf-8. Сделайте его в ANSI (то бишь в cp1251), должно заработать безо всяких дополнительных строк.

А нормально отображать юникод в виндовой консоли - это тяжко. Как минимум нужно сменить кодировку консоли командой ch-что-то-там (по умолчанию там досовская cp866).
0
363 / 334 / 38
Регистрация: 29.03.2011
Сообщений: 838
14.03.2013, 01:27
helter, вообще - есть решение. Т.к. сам когда-то в Notepad++ первые скрипты писал, специально откапал такой скрипт:
encodings.py
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/env python2
# -*- 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 # Ошибка? Всё равно какая - работаем по-старому...

Использовать так:
Python
1
2
3
#Где-то в начале __init__.py или каждого файла:
import encodings
encodings.setup_console()
Но надо быть аккуратнее с внешними модулями, перестанут ругаться на u'Строка'+'Строка', иногда это не то, что хотелось бы!
3
 Аватар для ilnurgi
141 / 141 / 38
Регистрация: 20.02.2012
Сообщений: 597
14.03.2013, 08:41
файл в ANSI
Python
1
2
3
# coding: cp1251
print 'привет мир'
print u'привет мир'
Python
1
2
3
4
5
6
7
8
9
10
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.
 
C:\Users\ilnurgi>cd /d c:\\
 
c:\>python27 1.py
яЁштхЄ ьшЁ
привет мир
 
c:\>
0
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
14.03.2013, 13:30
Цитата Сообщение от ilnurgi Посмотреть сообщение
яЁштхЄ ьшЁ
Гм. Определённо, он думает, что у него cp866.
0
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 204
14.03.2013, 22:08  [ТС]
Цитата Сообщение от helter Посмотреть сообщение
У вас же файл в utf-8. Сделайте его в ANSI (то бишь в cp1251), должно заработать безо всяких дополнительных строк.
Не помогло.
Миниатюры
Кириллица в консоли.  Python 2.7  
0
363 / 334 / 38
Регистрация: 29.03.2011
Сообщений: 838
15.03.2013, 15:25
Согласно пособию по кракозябрам у вас пытается показать UTF-8 как CP-866! Вы не сконвертировали файл из utf-8 в KOI8-R, тогда бы он другие кракозябры показывал!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2013, 15:25
Помогаю со студенческими работами здесь

Кириллица в консоли
пытаюсь прочитать файл (вывод xcopy в файл) xcopy.txt TYPE xcopy.txt и нихрена не понятно, опять одни кракозябры. Что это за...

Кириллица в консоли
Пишу простенькую программу: #include <iostream> using namespace std; int main() { cout << "Это моя первая C++...

Кириллица в консоли
Знаю что вопрос уже не раз задавали, но там люди программировали в какой-либо из IDE. Я же программирую на Windows в MinGW(эмулятор g++,...

Не отображается кириллица в консоли
Что делать?

Кириллица не выводится в консоли
доброго времини суток... я новичек впрогромирывание и плус ковсему русский не мой родной язык так что пожалуйста не судите строго. и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru