Механизм кодирования Unicode для международных текстов основан на идее присвоения уникального номера (code point) каждому символу, независимо от платформы, программы или языка. 2 Это позволяет однозначно идентифицировать символ и устраняет проблему несоответствия символов между разными языками и системами. 2
Стандарт состоит из двух основных частей: 5
- Универсальный набор символов (UCS). 5 Перечисляет допустимые по стандарту Unicode символы и присваивает каждому символу код в виде неотрицательного целого числа, записываемого обычно в шестнадцатеричной форме с префиксом U+. 5
- Семейство кодировок (UTF). 5 Определяет способы преобразования кодов символов для передачи в потоке или в файле. 5
Некоторые способы кодирования символов Unicode и количество байтов, которые они используют для представления каждого символа: 2
- UTF-8. 2 Использует от 1 до 4 байтов для кодирования символов. 2 Эффективен для текстов, преимущественно на латинице, но также поддерживает все символы Unicode. 2
- UTF-16. 2 Использует 2 или 4 байта. 2 Подходит для текстов, где часто встречаются символы за пределами базовой многоязычной плоскости (BMP). 2
- UTF-32. 2 Всегда использует 4 байта для каждого символа. 2 Обеспечивает простоту, но за счёт увеличения объёма используемой памяти. 2
Некоторые принципы Unicode:
- Гарантии стабильности. 1 Каждый символ всегда остаётся на своём месте. 1 Даже если в таблицу забыли добавить важный для языка символ, он появится не рядом со своим языком, а на новой пустой позиции. 1
- Динамическая компоновка. 1 Многие символы в Unicode получаются соединением двух других, например A + ¨ = Ä. 1
- Без оформления. 1 Задача Unicode — передать смысл текста, а не его внешний вид. 1