3 ms·
Yeah, I did briefly confuse UCS-2 (16-bit) and UCS-4 (32-bit) in my terminology, but the point still stands: lots of people expected the optimism in Unicode 1.0
by WorldMaker 4y ago
Yeah, I did briefly confuse UCS-2 (16-bit) and UCS-4 (32-bit) in my terminology, but the point still stands: lots of people expected the optimism in Unicode 1.0 that Unicode stopped at UCS-2 (16-bits) and never expected the "Astral Plane" to open up (and UCS-4 added). There was lots of software (including Windows) that had to do a lot of work to fix assumptions that UCS-2 was "the last word" on Unicode encoding and switch to UTF-16 or UTF-8.
That "except" there is still doing a lot of work pointing out that UTF-32 is not exactly UCS-4, so that point still stands. There's no surrogate code points allowed in UTF-32 today, but again if you want to assume "future compatibility" you shouldn't assume that UTF-32 is UCS-4 and will never have surrogate codepoints. As I said, we don't know if that next "plane" will ever open up into UCS-8 (64-bit) encodings, but if you are assuming it will never open up you are making the exact same sorts of assumptions that Unicode 1.0 users made with UCS-2 and had to consequently fix a decade later.
(And some of those same applications would have to fix again if 64-bit encodings opened up, because like I said UTF-16 has a math bug that its surrogates can't encode there, though UTF-8 is fine, and UTF-16 may be the worst of all Unicode encodings in the long run, but its legacy lives on so much because of all the early bets on UCS-2 being the last word and "easiest" Unicode that turned out to be bad assumptions when the "astral plane" opened up.)