Some HAT...

= Анабар.ru => Python-форумы => Язык программирования Python => сообщение 198
| Вход | Регистрация
нет
фото
Автор:  Женя
Дата:  29-Mar-2004 14:05 (gmt = -3.0)

Кодировка и Tkinter

Начиная с версии 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 :( почему-то.

Женя


все сообщения ветви:

Недостаточно прав для написания ответа
Время генерации страницы в секундах: 0.083