M.-A. Lemburg schrieb:
> Python just doesn't know the encoding of the 8-bit string, so can't
> make any assumptions on it. As result, it raises an exception to inform
> the programmer.
Oh, Python does make an assumption what the encoding is: it assumes
it is the system encoding (i.e. "ascii"). Then invoking the ascii
codec raises an exception, because the string clearly isn't ascii.
> It is well possible that the string uses an encoding where the
> Unicode string is indeed the equal to the string, assuming this
> encoding
So what? Python uses the system encoding for this operation.
What does it matter that the result would be different if it
had used a different encoding.
The strings are unequal under the system encoding; it's irrelevant
that they might be equal under a different encoding.
The same holds for the ASCII part (i.e. where you don't get an
exception):
py> u"foo" == "sbb"
False
py> u"foo".encode("rot13") == "sbb"
True
So the strings compare as unequal, even though they compare
equal if treated as rot13. That doesn't stop Python from considering
them unequal.
Regards,
Martin
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com