Patrick Totzke wrote on 2011-07-06 07:40: > wow: i seem to get a lot of encoding errors with the development > version.. for instance this one here. > > urwid.AttrMap.__init__(self, urwid.Text(bodytxt), 'message_body') > File > "/usr/local/lib/python2.7/dist-packages/urwid-0.9.10_pre-py2.7-linux-i686.egg/urwid/widget.py", > line 467, in __init__ > self.set_text(markup) > File > "/usr/local/lib/python2.7/dist-packages/urwid-0.9.10_pre-py2.7-linux-i686.egg/urwid/widget.py", > line 509, in set_text > self._text, self._attrib = decompose_tagmarkup(markup) > File > "/usr/local/lib/python2.7/dist-packages/urwid-0.9.10_pre-py2.7-linux-i686.egg/urwid/util.py", > line 375, in decompose_tagmarkup > text = u"".join(tl) > UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position > 186: ordinal not in range(128 > > i am sure that "bodytxt" is valit utf8, because i explicitly encoded > it as such. how come there is encoding going on anyway?
Yes, that looks like a bug. Urwid is supposed to accept either encoded text or unicode objects for output. The code for handling that *and* dealing with unicode changes in Python 3 is quite difficult to get right. However, why are you encoding your text to UTF-8? Do you intend your application to only be used by people with that UTF-8 enabled, or are you detecting the system's encoding yourself? In almost all cases you should be giving Urwid unicode objects instead of binary strings to display. Ian _______________________________________________ Urwid mailing list [email protected] http://lists.excess.org/mailman/listinfo/urwid
