Разница между Unicode и UTF8.
Да, читал что это как сравнивать яблоки и апельсины, но хочется без фруктов в вопросе разобраться.
Вот таблица Unicode.
http://foxtools.ru/Unicode
Таблица Unicode содержит 65536 символов, это до двух Байт.
UTF8 может хранить символы от двух до четырёх Байт.
--------
UTF8 это те же самые 65536 Unicode символов, но хранятся от двух до четырёх Байт?
То есть самый последний символ Unicode 65536, который в Unicode занимает 2 Байта, в UTF8 будет храниться в 4 Байтах?
Ну во-первых, в юникоде 65536 символов содержит только первая плоскость, называемая Basic Multilingual Plane. И в UTF-8 последний символ из BMP (U+FFFF) занимает 3 байта, а не 4. Но последующие (за пределами BMP) занимают по 4 байта.
Сравниваем непонятно откуда взятую неверную формулировку:
UTF8 может хранить символы от двух до четырёх Байт.
с взятой из википедии
UTF-8 - распространённый стандарт кодирования символов, позволяющий более компактно хранить и передавать символы Юникода, используя переменное количество байт (от 1 до 4), и обеспечивающий полную обратную совместимость с 7-битной кодировкой ASCII.
PS: UTF-8 в 4 октетах может закодировать 1114112 символов
Теоретически то UTF-8 в два байта может хранить овер дохрена символов. Но часть бит уходит на всякую служебную информацию и резерв. Поэтому эта таблица хоть и занимает 2 байта, но в двухбайтный UTF не поместится.
Если посмотреть UTF в HEX редакторе он не будет совпадать с таблицей. Есть специальные алгоритмы преобразования.
Unicode присваивает каждому символу номер.
UTF-8 - кодировка. Определяет как символы (номера) кодируются - т. е. как номер символа сохраняется в файле, передается через интернет и т. д.