Amaury Forgeot d'Arc <[EMAIL PROTECTED]> added the comment: Even in 2.5, __str__ is allowed to return a Unicode object; we could change BaseException_str this way:
Index: exceptions.c =================================================================== --- exceptions.c (revision 61957) +++ exceptions.c (working copy) @@ -108,6 +104,11 @@ break; case 1: out = PyObject_Str(PyTuple_GET_ITEM(self->args, 0)); + if (out == NULL && PyErr_ExceptionMatches(PyExc_UnicodeEncodeError)) + { + PyErr_Clear(); + out = PyObject_Unicode(PyTuple_GET_ITEM(self->args, 0)); + } break; default: out = PyObject_Str(self->args); Then str(e) still raises UnicodeEncodeError, but unicode(e) returns the original message. But I would like the opinion of an experimented core developer... __________________________________ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2517> __________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com