Characters are numbers
Computers store characters as numbers rather than pictures. That requires a table saying which number means which character, and the agreement defining that table is a character encoding. Early on there was only a small table built for English, and as each country added its own script in its own table, the tables multiplied.
How garbling happens
When the table used to save a file differs from the one used to open it, the same numbers are read as different characters. That is why text appears as unknown symbols or question marks. The content is not damaged but misinterpreted, so reopening with the correct encoding usually restores it.
What Unicode solved
Unicode is a single table assigning a unique number to every character in use. With one table, the problem of differing national tables disappears. How many bytes that number occupies in an actual file is a separate question, and the most widely used answer is UTF-8.
- Unicode: the table assigning a number to each character
- UTF-8: how those numbers are written as bytes
- Latin letters and digits take one byte; many scripts take three
- Emoji can take four
Characters versus bytes
In UTF-8 characters occupy differing numbers of bytes, so character count and byte count do not match. Ten Korean characters come to around thirty bytes. Where a length-limited field fills up faster in one script than another, the limit is most likely counted in bytes. When the basis is unclear, writing short is safer.
The percent signs in a URL
Web addresses may originally contain only Latin letters and certain symbols. Characters outside that, including spaces, are written as a percent sign followed by two hexadecimal digits. That is what the unreadable string pasted from a copied address is: not corruption but conversion following the rule.
🌍 Search the web for this
Each button runs this keyword on that search engine