STINNER Victor <victor.stin...@haypocalc.com> added the comment:

The example raises an AssertionError(u'\n- \ufffd+ \ufffd\ufffd') which is 
converted to string by traceback.format_exception(). This function fails in 
_some_str() on str(value) instruction. You can reproduce the error with:

>>> str(AssertionError(u"\xe9"))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 0: 
ordinal not in range(128)

> The problem with creating unicode tracebacks is that they could 
> fail when being output on terminals not capable of showing 
> the full range of unicode characters (the default terminal 
> on Windows is CP1252).

The problem is not related to the terminal encoding: str(value) uses Python 
default encoding (ASCII by default). Python3 is not concerned because 
str(AssertionError("\xe9")) doesn't raise any error: it returns "\xe9".

----------
components: +Unicode
versions:  -Python 3.2

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue8313>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to