У меня проблемы с кодировками.
Я использую версию
Python 2.7.2+ (по умолчанию, 4 октября 2011 г., 20:03:08)
[GCC 4.6.1] на linux2
У меня есть символы с акцентами вроде é à.
В моих скриптах используется кодировка utf-8
#!/usr/bin/python
# -*- coding: utf-8 -*-
Пользователи могут вводить строки с использованием raw_input () с помощью.
def rlinput(prompt, prefill=''):
readline.set_startup_hook(lambda: readline.insert_text( prefill))
try:
return raw_input(prompt)
finally:
readline.set_startup_hook()
вызывается в основном цикле 'псевдо' оболочки
while to_continue :
to_continue, feedback = action( unicode(rlinput(u'todo > '),'utf-8') )
os.system('clear')
print T, u"\n" + feedback
Данные хранятся в файлах как рассол.
Мне удалось заставить приложение работать, но в конце концов я получил глупые вещи вроде
основной файл:
class Task()
...
def __str__(self):
r = (u"OK" if self._done else u"A faire").ljust(8) + self.getDesc()
return r.encode('utf-8')
и так в файле оболочки:
feedback = jaune + str(t).decode('utf-8') + vert + u" supprimée"
Вот где я понимаю, что могу ошибаться с кодированием / декодированием.
Поэтому я попытался декодировать напрямую в rlinput, но не получилось.
Я прочитал какой-то пост в stackoverflow, перечитал http://docs.python.org/library/codecs.html
В ожидании моей книги по питону я заблудился: /
Я думаю, что много плохого кода, но мой вопрос здесь связан только с кодировкой issus.
Вы можете найти код здесь: (большинство комментариев на французском языке, извините, это для личного использования, и я новичок, вам также понадобится yapsy - http://yapsy.sourceforge.net/) (затем настройте пути, затем в py_todo: ./ todo_shell.py): http://bit.ly/rzp9Jm