Ви не побачите простої відповіді, оскільки такої немає.
По-перше, Unicode не містить "кожного символу з кожної мови", хоча він, безумовно, намагається.
Unicode сам по собі є відображенням, він визначає кодові точки, а кодова точка - це число, пов'язане зазвичай з символом. Я кажу, що зазвичай є такі поняття, як поєднання символів. Можливо, ви знайомі з такими речами, як акценти чи умулати. Вони можуть бути використані з іншим символом, наприклад, a a
або u
для створення нового логічного символу. Отже, символ може складатися з 1 або більше точок коду.
Для корисності в обчислювальних системах нам потрібно вибрати представлення для цієї інформації. Це різні кодування Unicode, такі як utf-8, utf-16le, utf-32 і т. Д. Вони відрізняються значною мірою за розміром їх кодових одиниць. UTF-32 є найпростішим кодуванням, у нього є кодова сукупність, яка становить 32 біт, а це означає, що окрема кодова точка зручно вписується в кодову сукупність. Інші кодування матимуть ситуації, коли кодовій точці знадобиться кілька кодових одиниць або ця конкретна кодова точка взагалі не може бути представлена в кодуванні (це проблема, наприклад, з UCS-2).
Через гнучкість поєднання символів навіть у межах заданого кодування кількість байтів на символ може змінюватись залежно від символу та форми нормалізації. Це протокол для роботи з символами, які мають більше ніж одне представлення (можна сказати, "an 'a' with an accent"
що це 2 кодові точки, одна з яких - об'єднана знака або "accented 'a'"
одна кодова точка).