Терминология и понятия, связанные с использованием кодовых страниц
Я нахожусь в процессе исследования кодовых страниц и натолкнулся на множество противоречивых терминов, даже среди разных статей в Википедии. Я просто не могу найти источник информации, который объясняет весь процесс обработки персонажа от начала до конца. Может ли кто-нибудь хорошо разбираться в этой области, предложить способы, которыми следующая информация является неточной или неправильной:
Процесс представления персонажа, насколько я понимаю:
Мы начнем с наборов символов (не уверены в правильной терминологии здесь, возможно, "сценарии"), которые не связаны с какой-либо конкретной платформой. Под "кириллицей" подразумевается тот же объект в контексте Windows, что и в Linux, например.
Члены этих наборов выбираются, как правило, группами, поставщиками для формирования набора символов для конкретной платформы. Платформа может назначать эти различные коды, такие как значения GDI в Windows (например, 0 для ANSI_CHARSET и другие коды, упомянутые здесь: http://asa.diac24.net/wiki/index.php?title=ASS:fe&printable=yes), Я не могу найти много информации об этих наборах, например, являются ли они фактически кодированными наборами символов или они просто неупорядочены и абстрактны.
Из этих наборов разрабатываются отдельные кодовые страницы, которые, по-видимому, имеют однозначное сопоставление со значениями GDI. Поскольку эти значения GDI, по-видимому, представляют наборы, которые зависят от платформы, означает ли это, что кодовые страницы Windows по сути являются кодированной версией каждого отдельного набора?
У меня возникли проблемы при согласовании этой идеи со ссылкой, показанной мне ранее (которую я потерял), которая показывала взаимно однозначное сопоставление между этими кодировками GDI и кодовыми страницами на разных платформах. Является ли это точным, указывают ли эти значения GDI на наборы, из которых могут быть разработаны различные кодовые страницы на разных платформах?
Каждая кодовая страница отображает элемент набора абстрактных символов на целое число, чтобы представить его положение в наборе. В случае "более простых" кодовых страниц, упомянутых на вышеуказанной веб-странице, к ним можно обращаться, используя более точный термин "символьная карта". Стоит ли рассматривать этот термин или оно слишком тонкое и неважное?
Шрифт разрешает кодовую точку для глифа, если он содержит ее для этой кодовой точки, в противном случае он сообщает об ошибке. Я также читал, что шрифт может возвращать свой собственный пустой глиф для тех точек кода, которые он не поддерживает. Может ли приложение различать этот пустой глиф и успешное разрешение, т.е. шрифт возвращает код ошибки с этим пустым глифом?
Я считаю, что это степень моего замешательства. Любые разъяснения в этом отношении были бы неоценимы. Заранее спасибо.
2 ответа
Вы по сути правы
- Начните с количества известных персонажей.
- Выберите подмножество этих символов (набор символов)
- Сопоставьте их с битовыми шаблонами (кодовая страница и кодировка)
- Визуализируйте их на устройстве вывода, комбинируя символ с глифом (т. Е. Используя шрифт, битовую комбинацию и кодовую страницу / кодировку, которая отображает битовую комбинацию в символ).
На разных платформах есть похожие кодовые страницы. И даже во многих кодовых страницах есть сопоставления значения для символа. Например, Windows Latin, Mac Roman и Unicode совместно используют символы для первых 127 значений. Существует некоторая стандартизация (например, http://en.wikipedia.org/wiki/Shift_JIS для японского языка) кодовых страниц, чтобы машины могли взаимодействовать.
Обычно для новых разработок вы должны использовать кодовую страницу Unicode с одной из популярных кодировок. UTF8 популярен на большинстве современных систем. UTF16LE используется для системных вызовов Windows, оканчивающихся на W.
Это может быть хорошим совпадением: http://mihai-nita.net/2006/08/06/basic-lingo/