LINUX.ORG.RU

Python. Обработка entry.get() в кириллице


0

0

При обработке значений ввода в диалог Entry или Pmw.EntryField есть необходимость записи значений в лог-файл.(Python2.3.4)

Не удается записать в лог значение ввода на русском.
# -*- coding: utf-8 -*-

....
e1 = entry1.get()
log.write(unicode(e1, 'utf-8').encode('cp1251'))

- НЕ РАБОТАЕТ, если ввод на русском

В то время как 5 случаев, когда работает:
1)
e1 = entry1.get()
log.write(e1)РАБОТАЕТ с латиницей

2) ввод русского значения не через диалог, а назначение его в тексте программы РАБОТАЕТ

e2='тест2'
#( а не u'тест2' почему то. с u'тест2' тоже не работает)

log.write(unicode(e1, 'utf-8').encode('cp1251'))

4) print e1 - РАБОТАЕТ ВЕРНО и с кириллицей

log=open("test2.txt","w")

5) прямое указание значения в команде тоже работает

log.write(unicode('Тест', 'utf-8').encode('cp1251')) РАБОТАЕТ

ВОПРОС: как все-таки обрабатывать ввод в Entry или Pmw.EntryField на русском ?

Спасибо

anonymous

1. Какая GUI библиотека?

2. Что пишет, когда не работает (кракозябры, исключение)?

3. Кодировка текста программы и кодировка, с которой работает GUI-библиотека -- совершенно разные вещи и, строго говоря, никак не связаны. Попробуйте убрать unicode(...) и ограничиться encode(...).

DKorolkov
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.