▲ | layer8 13 hours ago | ||||||||||||||||
It’s not a bug, it’s a feature. The reason is that ISO 8859-7 [0] used for Greek has a separate character code for Iota (for all greek letters, really), while ISO 8859-3 [1] and -9 [2] used for Turkish do not for the usual dotless uppercase I. One important goal of Unicode is to be able to convert from existing character sets to Unicode (and back) without having to know the language of the text that is being converted. If they had invented a separate code point for I in Turkish, then when converting text from those existing ISO character encodings, you’d have to know whether the text is Turkish or English or something else, to know which Unicode code point to map the source “I” into. That’s exactly what Unicode was designed to avoid. [0] https://en.wikipedia.org/wiki/ISO/IEC_8859-7 | |||||||||||||||||
▲ | thaumasiotes 11 hours ago | parent | next [-] | ||||||||||||||||
I know that. That's why I mentioned > in "defense" of Unicode, it has several principles that directly contradict each other Unicode wants to do several things, and they aren't mutually compatible. It is premised on the idea that you can be all things to all people. > It’s not a bug, it’s a feature. It is a bug. It directly violates Unicode's stated principles. It's also a feature, but that won't make it not a bug. | |||||||||||||||||
▲ | newpavlov 2 hours ago | parent | prev [-] | ||||||||||||||||
>If they had invented a separate code point for I in Turkish, then when converting text from those existing ISO character encodings, you’d have to know whether the text is Turkish or English or something else, to know which Unicode code point to map the source “I” into. That’s exactly what Unicode was designed to avoid. Great. So now we have to know locale for handling case conversion for probably centuries to come, but it was totally worth to save a bit of effort in the relatively short transition phase. /s | |||||||||||||||||
|