Чтобы начать с основ, все основано на US-ASCII, который представляет собой 7-битный код со 128 кодовыми точками в наборе, пронумерованные шестнадцатеричные от 00 до 7F или десятичные 0-127. Это сопоставлено с управляющими кодами, английскими буквенно-цифровыми и основными знаками препинания
Добавление 1 бита к этому для 8-битного кода (байта) дает нам еще 128 кодовых точек или расширенный ASCII.
Наборы символов / кодовые страницы требовались на раннем этапе, чтобы изменить то, как кодовые точки в верхних 128 битах отображаются на символы, чтобы охватить алфавит для конкретного языка, который вы хотите представить. Это работает достаточно хорошо для большинства западноевропейских языков. ISO 8859-1 / Latin-1 является примером такого набора символов. Другим является Windows-1252, который имеет изменения по сравнению с ISO 8859-1, чтобы помочь ему охватывать больше или разных символов.
Языки с более сложными наборами символов, такими как китайский, японский и корейский, превосходят возможности набора из 256 кодовых точек и используют двухбайтовый код для их представления.
Unicode UTF-8 - это схема кодирования многобайтовых символов (1-4 байта) с обратной совместимостью с ISO 8859-1/Latin-1, которая является его первыми 128 символами. В нем есть место для более чем 1 миллиона кодовых точек, что означает, что каждая кодовая точка может фактически представлять символ, в отличие от обхода, сделанного с помощью Extended ASCII, что означает, что кодовая точка отображается на другой символ в зависимости от набора символов / кодовой страницы / кодирование.
Шрифты - это глифы, которые отображаются на кодовые точки и визуально представляют символы. Содержимое шрифта зависит от того, на каких языках оно изначально предназначалось. Вы можете использовать карту символов, чтобы увидеть, какие глифы содержатся в шрифте.
Шрифты Unicode не обязательно охватывают все кодовые точки, вам нужно увидеть, где они были предназначены для использования. Например, в Windows 7 запустите карту персонажей и просмотрите символы в Calibri, а затем сравните их с Ebrima, Meiryo и Raavi. Обратите внимание, что они сильно отличаются друг от друга, потому что каждый из них предназначен для разных географических регионов.
Что касается шрифтов Unicode и набора символов Windows-1252, Windows использует таблицу сопоставления для перевода Windows-1252 в Unicode, где он не соответствует ISO 8859-1 для сценария "Наилучшее соответствие", где некоторые символы в символе Windows-1252 набор может не отображаться.