Нет большой разницы между тем, как Python 3 и Python 2.6 обрабатывают юникод и международный текст, технически. Самая большая разница в том, как называются классы и каковы значения по умолчанию.
Так что если вы в Python 3 напишите:
s = "Grüß Gott"
вы берете это в Python 2.x:
# coding: UTF-8
s = u"Grüß Gott"
PyGTK всегда работает с внутренней кодировкой UTF-8, и вы можете передавать ей строки в кодировке Юникод или строки в кодировке UTF-8, как вам угодно.
Лучшая модель - всегда работать со строками Юникода внутри и всегда преобразовывать строки, как только они входят в вашу программу (скажем, вы читаете файл). Опять же, в Python 3 это применяется более явно, но процесс действительно точно такой же.
Добавление обновленного вопроса: я уже ответил, внимательно посмотрите на примеры Py 3 и Py 2.x! Подсказка: вы должны указать кодировку в первой строке каждого файла, например: # coding: UTF-8
Вы также должны спросить себя, Баха, когда увидите сообщение об ошибке вроде этого:
SyntaxError: не-ASCII символ
'\ xd0' в файле basics.py в строке 6,
но кодировка не объявлена; увидеть
python.org/peps/pep-0263.html для
подробности
Вы прочитали сообщение и увидели, что в нем написано "кодировка не объявлена"? Вы переходили по ссылке и читали там информацию? Было бы легко решить это самостоятельно.