"Decoding unicode is not supported" in unusual situation
John Nagle
nagle at animats.com
Wed Mar 7 14:25:47 EST 2012
On 3/7/2012 3:42 AM, Steven D'Aprano wrote:
> I *think* he is complaining that some other library -- suds? -- has a
> broken test for Unicode, by using:
>
> if type(s) is unicode: ...
>
> instead of
>
> if isinstance(s, unicode): ...
>
> Consequently, when the library passes a unicode *subclass* to the
> tounicode function, the "type() is unicode" test fails. That's a bad bug.
No, that was my bug.
The library bug, if any, is that you can't apply
unicode(s, errors='replace')
to a Unicode string. TypeError("Decoding unicode is not supported") is
raised. However
unicode(s)
will accept Unicode input.
The Python documentation
("http://docs.python.org/library/functions.html#unicode") does not
mention this. It is therefore necessary to check the type before
calling "unicode", or catch the undocumented TypeError exception
afterward.
John Nagle
More information about the Python-list
mailing list