Найти - Пользователи
Полная версия: SciTE, проблема с кодировками
Начало » Инструментальные средства разработки » SciTE, проблема с кодировками
1 2 3
shiza
Так. Вы под что пишете скрипт?
Наверное чтоб рботал в консоли.
Дык настройте 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
Все ники заняты
Означает ли это, что принципиально невозможно написать код, который будет печатать по-русски правильно всегда и в консоли, и в SciTE, невзирая на настройки SciTE? Можно ли изгольнуться “определить кодировку терминала”, как написал выше bialix, так, чтобы не нужно было устанавливать в SciTE “output.code.page=866”?
shiza
SciTe неправильный терминал, раз кодировку не отдает %)
Можно сделать так.
Если кодировка терминала не опряделяется т.е. None. То отдавать в кодировке, на которую расчитан SciTe (какая там у него по умолчанию?)
Все ники заняты
bialix
SciTe глючит! XXX глюкало! на помойку!
shiza
SciTe неправильный терминал, раз кодировку не отдает %)
Понятно :lol:
shiza
То отдавать в кодировке, на которую расчитан SciTe (какая там у него по умолчанию?)
А вот непонятно. Говорят, что utf-8, но тогда то, что в посте #8, должно было работать, а оно не работало.
bialix
http://pythonini.livejournal.com/14325.html
Все ники заняты
bialix
http://pythonini.livejournal.com/14325.html
Приведенный метод, к сожалению, ошибочен.
locale.getlocale() под виндой будет “1251”, а это не годится ни для консольных скриптов, ни для SciTE.
Вызовы
print ‘Привет’
или
print u'Привет'
не работают с этим кодом правильно нигде (везде кракозябры).
bialix
ради интереса скачал эту 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

Товарищу серому кардиналу, начавшему этот топик и все ники заняты ничего путнего подсказать не могу. Спрашивайте у авторов этого чуда шо за фигня.
Все ники заняты
В посте #12 решение для SciTE уже озвучено :).
Фишка в том, что с кодировками универсального решения “на все случаи жизни”, похоже, нет. Т.е. непонятно, как написать скрипт, который выводил бы “Привет, мир!” правильно всегда и везде.
poltergeist
Текст, выводимый в окно консоли, всегда преобразуется в кодировку win1251, поэтому, независимо от кодировки окна редактирования, в окне консоли всегда будет читабельный текст. За это поведение отвечает ключ output.code.page.oem2ansi=1
Это из описания последней версии (ru) SciTe'a. Вообще это очень хороший редактор и не надо пинать его и его оригинальных авторов.

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

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