|
|
|
|
|
by prevedmedved
3278 days ago
|
|
You're right that you can get Python 3 to behave correctly if you jump through some hoops. However, wasn't the point of Python 3 to remove the hoopjumping in the first place? Anyways, the point is that Python 3's design was broken from the start. Anglophone programmers think that internationalisation means "upgrading" from ASCII to Unicode. In reality, though, the rest of the world's programmers got along just fine long before Unicode was invented and will continue to do fine long after Unicode gets replaced by something else. True internationalisation means mechanisms to deal with the world's text encodings in a neutral and culture-agnostic way. (And "Unicode only everywhere and no exceptions" is definitely not that.) |
|
The hoops of encoding and decoding bytes are not optional, manipulating text and manipulating arbitrary bytes are not the same thing and encoding and decoding is how you translate between the two domains. Python 2 hid this for a subset of the bypes and code was usually broken as a result. Python 3 requires that this split be taken in account in all cases (as do e.g. Java or C#) and is significantly better as a result.
> Anglophone programmers think that internationalisation means "upgrading" from ASCII to Unicode.
Which is a pretty significant upgrade from their previous case of literally not giving a fuck.
> True internationalisation means mechanisms to deal with the world's text encodings in a neutral and culture-agnostic way.
That's completely meaningless word salad.