Русское сообщество Sublime Text

Основной раздел => Вопросы и ответы => Тема начата: uamaks от Февраля 11, 2016, 04:12:22

Название: Кодировка в окне отладки
Отправлено: uamaks от Февраля 11, 2016, 04:12:22
Подскажите, может кто сталкивался, как решить такую проблему:
В окне редактора с кодировкой все работает нормально - utf-8 и кирилица отбражается нормально.
А вот когда запускаешь код на выполнение(Python) - в окне отладки кодировка не работает. Где можно посмотреть настройки именно для отладки?
Название: Re: Кодировка в окне отладки
Отправлено: Loac от Февраля 11, 2016, 11:50:24
Что именно не работает? Юникод не отображается корректно или ошибка кодирования "UnicodeEncodeError: 'ascii' codec can't encode characters"?

Попробуй добавить в начало файла
# -*- coding:utf-8 -*-
И это
import sys
reload(sys)
sys.setdefaultencoding('utf8')
Название: Re: Кодировка в окне отладки
Отправлено: uamaks от Февраля 12, 2016, 03:22:25
После замены кодировки на utf-8(в файле пользовательских настроек) в основном окне все нормально. А при выводе результата выдавал именно такую ошибку.(только вместо ascii - utf-8)
Кстати, сегодня обновил до последнего релиза, теперь ошибка не выводится, но и результат вообще не выводится. Видимо выполнение просто останавливается, как только попадается кирилица.
А с сменой кодировки в коде - пока не получается. Ругается на reload.
Но идею я понял - посмотрю. Спасибо!
Название: Re: Кодировка в окне отладки
Отправлено: uamaks от Февраля 12, 2016, 03:40:19
print (sys.getdefaultencoding()) возвращает utf-8, да и в других редакторах отладка работает нормально.
Так что дело не все-таки в Sublime а не в Python...
Название: Re: Кодировка в окне отладки
Отправлено: Loac от Февраля 12, 2016, 10:18:11
Можно взглянуть на код? Какая все-таки была ошибка? Какая у тебя ОС?

У меня в окне отладки некорректно отображается юникод только кода он в списках. Простой пример print 'Привет' выведет все нормально.
Название: Re: Кодировка в окне отладки
Отправлено: uamaks от Марта 08, 2016, 00:06:24
Переустановил последнюю сборку(3103). Ошибку перестал выводить, но и текст тоже:
print('Hello!')
print('Привет')

выводит:
Hello!