Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 15, 2007 17:15:32

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

SciTE, проблема с кодировками

Так. Вы под что пишете скрипт?
Наверное чтоб рботал в консоли.
Дык настройте SciTe на туже кодировку, как у консоли. Вот и будет одноообразие. %)



Отредактировано (Ноя. 15, 2007 17:19:39)

Офлайн

#2 Ноя. 15, 2007 21:07:15

Все ники заняты
От:
Зарегистрирован: 2007-02-18
Сообщения: 156
Репутация: +  1  -
Профиль   Отправить e-mail  

SciTE, проблема с кодировками

Ага, вот так получилось:

# -*- coding: utf-8 -*-
import codecs, sys
outf = codecs.getwriter('cp866')(sys.stdout, errors='replace')
sys.stdout = outf
print >> outf, u'Привет!'
print u'Ещё привет!'
Такой код работает правильно и в виндовой консоли, и из-под SciTE.
Однако, в SciTE нужно обязательно поставить:
output.code.page=866



Офлайн

#3 Ноя. 15, 2007 21:18:58

Все ники заняты
От:
Зарегистрирован: 2007-02-18
Сообщения: 156
Репутация: +  1  -
Профиль   Отправить e-mail  

SciTE, проблема с кодировками

Означает ли это, что принципиально невозможно написать код, который будет печатать по-русски правильно всегда и в консоли, и в SciTE, невзирая на настройки SciTE? Можно ли изгольнуться “определить кодировку терминала”, как написал выше bialix, так, чтобы не нужно было устанавливать в SciTE “output.code.page=866”?



Офлайн

#4 Ноя. 15, 2007 21:42:33

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

SciTE, проблема с кодировками

SciTe неправильный терминал, раз кодировку не отдает %)
Можно сделать так.
Если кодировка терминала не опряделяется т.е. None. То отдавать в кодировке, на которую расчитан SciTe (какая там у него по умолчанию?)



Офлайн

#5 Ноя. 15, 2007 21:52:00

Все ники заняты
От:
Зарегистрирован: 2007-02-18
Сообщения: 156
Репутация: +  1  -
Профиль   Отправить e-mail  

SciTE, проблема с кодировками

bialix
SciTe глючит! XXX глюкало! на помойку!
shiza
SciTe неправильный терминал, раз кодировку не отдает %)
Понятно :lol:
shiza
То отдавать в кодировке, на которую расчитан SciTe (какая там у него по умолчанию?)
А вот непонятно. Говорят, что utf-8, но тогда то, что в посте #8, должно было работать, а оно не работало.



Офлайн

#6 Ноя. 17, 2007 20:37:33

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

SciTE, проблема с кодировками

Офлайн

#7 Ноя. 17, 2007 20:46:41

Все ники заняты
От:
Зарегистрирован: 2007-02-18
Сообщения: 156
Репутация: +  1  -
Профиль   Отправить e-mail  

SciTE, проблема с кодировками

bialix
http://pythonini.livejournal.com/14325.html
Приведенный метод, к сожалению, ошибочен.
locale.getlocale() под виндой будет “1251”, а это не годится ни для консольных скриптов, ни для SciTE.
Вызовы
print ‘Привет’
или
print u'Привет'
не работают с этим кодом правильно нигде (везде кракозябры).



Офлайн

#8 Ноя. 18, 2007 01:08:54

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

SciTE, проблема с кодировками

ради интереса скачал эту SciTE.
вспомнил, что уже качал и пробовал ее раньше.
мне в ней не понравилось, что это как vim, только с Lua внутри.

Пробовал запускать простой тест:

# -*- coding: utf-8 -*-

print u“Привет”.encode(xxx)

Вместо xxx подставлял cp1251, utf-8, cp866, koi8-r, utf-16.
В любом случае в окне вывода были крякозябры.

Разбираться с настройками на языке lua нет никакого желания.
Да и еще: замечу, что я скачал русскую сборку.
http://scite.ruteam.ru/scite/sborki/scite-ru-board

Товарищу серому кардиналу, начавшему этот топик и все ники заняты ничего путнего подсказать не могу. Спрашивайте у авторов этого чуда шо за фигня.



Офлайн

#9 Ноя. 18, 2007 01:30:48

Все ники заняты
От:
Зарегистрирован: 2007-02-18
Сообщения: 156
Репутация: +  1  -
Профиль   Отправить e-mail  

SciTE, проблема с кодировками

В посте #12 решение для SciTE уже озвучено :).
Фишка в том, что с кодировками универсального решения “на все случаи жизни”, похоже, нет. Т.е. непонятно, как написать скрипт, который выводил бы “Привет, мир!” правильно всегда и везде.



Офлайн

#10 Ноя. 18, 2007 09:40:40

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

SciTE, проблема с кодировками

Текст, выводимый в окно консоли, всегда преобразуется в кодировку win1251, поэтому, независимо от кодировки окна редактирования, в окне консоли всегда будет читабельный текст. За это поведение отвечает ключ output.code.page.oem2ansi=1
Это из описания последней версии (ru) SciTe'a. Вообще это очень хороший редактор и не надо пинать его и его оригинальных авторов.

Всё ведь решается - надо всего лишь файл настроек поковырять, Scite можно настроить под себя и заточить под любой язык.

P.S. Как только закоментировал опцию “output.code.page.oem2ansi=1”, он мне вывел родной и красивый юникод без лишних телодвижений.



Отредактировано (Ноя. 18, 2007 10:09:59)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version