The gray Cardinal
Deutschmann
import codecs, sys
outf = codecs.getwriter('cp866')(sys.stdout, errors='replace')
sys.stdout = outf
raw_input(u'Привет')
Работает на сто процентов:
# -*- coding: cp1251 -*-
from __future__ import division
from random import *
import re
import codecs, sys
outf = codecs.getwriter('cp866')(sys.stdout, errors='replace')
sys.stdout = outf
def main():
while 1:
x = []
if raw_input(u"Ввести данные? (иначе будут использованы тестовые данные) - [y/n]:") == "y":
[<<кусок кода>>]
main()
Спасибо за решение, но хочется более простого в одну строчку. Кстати, исходник сохраненный в UTF-8 в блокноте например, в ActiveState Python PythonWin редакторе открывается иероглифами, а в IDLE тем не менее все нормально, так же как и в самом блокноте. (PS Если бы не это то проблемы бы для меня и не было, а так обидно)
Причем в примере выше строка в raw_input обязательно должна быть Unicode (u“”), иначе UnicideDecodeError исключение, что тоже немного плоховато.