Skip to main content

Learn

What Is Unicode?

One number for every character, in every script.

Short answer

Unicode gives every character in every writing system one unambiguous number, called a code point. Before it, the same byte meant different letters in different systems, so text sent between them arrived scrambled.

What Is Unicode? — title card for the learn article on UltraTextGen.

The problem it solved

Before Unicode, each language region used its own byte encoding. The same byte meant different letters in different systems, so text sent between them arrived scrambled. Unicode assigns every character a single unambiguous number, called a code point, so text means the same thing everywhere.

A numbered outline of the article's sections: The problem it solved, Code points and encodings.

Code points and encodings

A code point is written like U+0041 for A. How that number becomes bytes is a separate choice: UTF-8 uses one to four bytes per character and is now standard on the web, largely because plain ASCII stays a single byte.

What mojibake actually is

When text arrives as a run of nonsense characters, what has happened is that bytes encoded in one scheme were decoded using another. The bytes are intact; only the interpretation is wrong. Before Unicode this was routine in any correspondence crossing a language boundary, and the reason it is now rare is that almost everything agreed on one encoding.

Why UTF-8 won

Its decisive property is that plain ASCII remains a single byte per character and is byte-identical to what came before. That meant existing English-language systems kept working unchanged while gaining the ability to represent every other script, so adoption cost almost nothing — a rare case where the technically sound option was also the easy one.

Sources

More in Learn