Начиная с версии 8.3 Tk библиотека разговаривает с нами на юникоде, поэтому правильно делать так:
1 #!/usr/bin/python
2
3 import Tkinter
4 import tkMessageBox
5 if Tkinter.TkVersion < 8.3:
6 tkMessageBox.showinfo("АБВГД", "абвгд")
7 else:
8 tkMessageBox.showinfo(unicode("АБВГД","koi8-r"), unicode("абвгд",koi8-r))
А в новом питоне 2.3 при использовании комментария указывающего на кодировку, можно вместо функции unicode использовать юникодную кавычку (чего вы по всей видимости не сделали). С другой стороны, ничто не мешает вам плюнуть на всë и сразу писать программу в utf-8.
1 #!/usr/bin/python
2 # -*- coding: koi8-r -*-
3
4 import tkMessageBox
5 tkMessageBox.showinfo(unicode("АБВГД","koi8-r"), unicode("абвгд",koi8-r)) # Правильно
6 tkMessageBox.showinfo(u"АБВГД", u"абвгд") # Не только правильно, но ещё и эффективно,
7 # но, увы, непереносимо на старые версии Python.
8 tkMessageBox.showinfo("АБВГД", "абвгд") # Неправильно
или так:
1 #!/usr/bin/python
2 # -*- coding: utf-8 -*-
3
4 import tkMessageBox
5 tkMessageBox.showinfo("АБВГД", "абвгд")
6 # Это правильно, и переносимо на старые версии питона, но непереносимо на старые версии Tk и к
7 #тому же требует наличия на вашей машине редактора, который бы понимал кодировку utf-8
Среди множества текстовых редакторов, могущих работать с кодировкой utf-8 существует ограниченное подмножество функионирующих и под Windows. Из последних я испытывал Emacs, XEmacs и Vim. Последний, на мой взляд, портирован под Windows наилучшим образом (я не пишу, что это наилучший редактор, так как это флеймогенный вопрос). Лично я остановил на нëм свой выбор за то, что он практически одинаково работает под Windows и под Linux, и покрывает весь мой обширный спектр требований к текствовым редакторам. (Последнему условию Emacs и XEmacs тоже удовлетворяют, но не первому.) Вы можете бесплатно найти этот редактор по адресу http://www.vim.org.
PS. Кажется, MS Word тоже умеет сохранять файлы в тесктовом формате в кодировке utf-8, однако он не оборудован синтаксической подсветкой для языка Python :( почему-то.