Терминология и понятия, связанные с использованием кодовых страниц

Я нахожусь в процессе исследования кодовых страниц и натолкнулся на множество противоречивых терминов, даже среди разных статей в Википедии. Я просто не могу найти источник информации, который объясняет весь процесс обработки персонажа от начала до конца. Может ли кто-нибудь хорошо разбираться в этой области, предложить способы, которыми следующая информация является неточной или неправильной:

Процесс представления персонажа, насколько я понимаю:

  • Мы начнем с наборов символов (не уверены в правильной терминологии здесь, возможно, "сценарии"), которые не связаны с какой-либо конкретной платформой. Под "кириллицей" подразумевается тот же объект в контексте 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/

Другие вопросы по тегам