Где-то в разделе про базы данных было про такую же историю...
При использовании wx (под windows 2000) происходит следующее:
Traceback (most recent call last):
File "C:\Faculty\mainframe.py", line 78, in OnOpen
self.SetTitle(self.title+' --- '+self.filename)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd4 in position 4: ordinal not in range(128)
Исключение возникает, если в self.title или в self.filename находятся кириллические символы (просто кириллические символы в титулах, текстах и пр. допускаются). аналогичное исключение возникает при попытке записать в текстовый файл кириллицу (без wx все ок) посредством ли print >> f, посредством ли f.write все равно. то же самое происходит при форматировании строк...
Вопрос: можно ли сие победить? или я как-то неправильно использую wx?
wx установлен unicodeовский, в начале программы объявлена кодировка cp1251 (без нее вообще не работает, естественно)
А что в self.title?
"чистый" unicode, utf8 или же вовсе cp1251?
должен быть cp1251, поскольку текст набирал в редакторе в кавычках " "... но то же самое было, когда текст набирался "внутри" программы, там по идее тоже должно получаться cp1251...
У меня сложилось впечатление, что когда человек употребляет оборот "по идее", то он не знает о чём говорит =)

Если строки определялись без префикса u т.е. "фыва", а не u"фыва", то да, они будут в cp1251 кодировке.

Я с wx не работал, но подозреваю, что раз "wx установлен unicodeовский" то и хавает он юникодовые строки.
Зачем же ты ему cp1251 пихаешь? )
Попробуй так:
self.SetTitle(self.title.decode('cp1251'))
Хотя это, конечно, фигня. Главное правило работы с кодировками в python: всё что приходит извне переводим в unicode и внутри работаем только с unicode. Поэтому, имеет смысл объявлять строки, как юникодные т.е. foo = u"фыва"

А вообще cp1251 это старьё, давно пора на utf-8 переходить ;-)
спасибо. попробую.