News for hackers. Stuff that matters.
Re:Corrected UTF-8 by karteum on Sunday July 06, 2025 @06:13PM (#44484568)
> Usually, what you want is either the byte or the grapheme cluster.

Exactly ! That's what I understood after reading this great post https://tonsky.me/blog/unicode/

"Even in the widest encoding, UTF-32, [some grapheme] will still take three 4-byte units to encode. And it still needs to be treated as a single character. If the analogy helps, we can think of the Unicode itself (without any encodings) as being variable-length."

I tend to think it's the biggest design decision in Unicode (but maybe I just don't fully see the need and use-cases beyond emojis. Of course I read the section saying it's used in actual languages, but the few examples described could have been made with a dedicated 32 bits codepoint...)

Re:Corrected UTF-8 by panpog on Sunday July 06, 2025 @10:11PM (#44486079)
Can you fit everything into 32 bits? I have no idea, but Hangul and indict scripts seem like they might have a combinatoric explosion of infrequently used characters.
Re:Corrected UTF-8 by eviks on Monday July 07, 2025 @12:22AM (#44486736)
But they don't have that explosion if you only encode the combinatoric primitives those characters are made of and then use composing rules?
Re:Corrected UTF-8 by panpog on Monday July 07, 2025 @02:48AM (#44487392)
You still get the combinatoric explosion, but you have more bits to work with. Imagine if you could combine any 9 jamo into a single hangul syllable block. (The real combinatorics is more complicated, and I don't know if it's this bad.) Encoding just the 24 jamo and a a control character requires 25 codepoints. Giving each syllable block its own codepoint would require 24^9>2^32 codepoints.
Re:Corrected UTF-8 by eviks on Monday July 07, 2025 @02:52AM (#44487411)
> Giving each syllable block its own codepoint

That's the thing - you wouldn't do that! Only a small subset of frequently used combos would get it's own id, the rest would only be composable