A utf-8-encoded 8-bit string in Python is *not* a string, but a "ByteArray".
Another way of putting this is: - utf-8 in an 8-bit string is to a unicode string what a pickle is to an object. - defaulting to utf-8 upon coercing is like implicitly trying to unpickle an 8-bit string when comparing it to an instance. Bad idea.
Defaulting to Latin-1 is the only logical choice, no matter how western-culture-centric this may seem.