Кодировки национальных шрифтов - поиски и решения
В заметке рассматриваются три варианта кодировки дополнительных букв
языков России и СНГ, основанные на кодовой странице Windows 1251. Кроме
них, встречаются шрифты, в которых национальный алфавит заменяет основную
латиницу (например, некоторые азербайджанские и таджикские шрифты), основную
кириллицу (азербайджанские шрифты, в которых отсутствуют некоторые русские
буквы), а также шрифты, основанные на других кодовых страницах. Такие варианты
мы не можем считать приемлемыми для платформ Windows.
Решение № 1
Дополнительные буквы заменяют символы в пределах "Basic Latin"
(Unicode 0020-007F). Например, тувинские
шрифты, в которых буквы "О", "о" с черточкой, "Н",
"н" с хвостиком и прямые "У", "у" заменяют
символы "{", "|", "}", "[", "\",
"]".
Плюсы:
- "Дуракоустойчивость" такой кодировки. Дополнительные буквы
будут всегда показаны правильно.
- Возможность набора дополнительных букв без специальной раскладки клавиатуры.
Минусы:
- Отсутствие символов, которые могут оказаться необходимыми.
- Проблемы со чтением текста, набранного национальным шрифтом, при отсутствии
такового.
- Невозможность операций с большими и маленькими буквами ("change
case" и др.).
Решение № 2
Дополнительные буквы заменяют белорусские, македонские, сербские и украинские
буквы на кодовой странице Windows 1251. Например, стандартные
татарские шрифты.
Плюсы:
- Большее соответствие потребностям пользователей. Скажем, марийцу вполне
могут потребоваться квадратные скобки, но вряд ли окажется нужной сербская
буква "ђ".
- Текст, набранный национальным шрифтом, можно в какой-то мере читать
и при отсутствии такового. Для этого следует искать форменные соответствия
букв - например, букву "у" с точками положить на место краткого
"у".
- Возможность операций с большими и маленькими буквами ("change
case" и др.).
Минусы:
- Отсутствие белорусских, македонских, сербских, украинских букв.
- Необходимость специальной раскладки клавиатуры для набора дополнительных
букв.
Другие замечания:
- Для обеспечения работы шрифта как в новых, юникодовых, так и в старых,
неюникодовых программах (вернее, в программах, которые не поддерживают
разные кодовые страницы), кириллическую кодировку с дополнительными буквами
следует дублировать на месте западноевропейской кодировки (Windows 1252).
- Лишь при использовании позиций нерусских кириллических букв (14 больших
и 14 маленьких) будет опеспечена работа некоторых технических функций (одновременный
поиск слов с маленькими и большими буквами, автоматическая замена маленьких
букв заглавными и др.). Предостерегающим примером является шрифт, в котором
дополнительные буквы расположены вместо символов "–" и "—"
(Unicode 2013 и 2014). В конце строки слова, содержащие эти буквы, будут
автоматически разделены на две части.
- При наличии местного стандарта следует ориентироваться на него.
Решение № 3
Дополнительные буквы расположены на своих юникодовых позициях. Например,
Шрифт Arial
MS Unicode, последние версии шрифтов Arial,
Courier New, Times New Roman.
Плюсы:
- Соответствие международному стандарту.
Минусы:
- Невозможность применения таких шрифтов (вернее, дополнительных кириллических
букв) в старых, неюникодовых программах.
- Необходимость специальной раскладки клавиатуры.
В данный момент, на наш взгляд, идеальным решением кодировки национальных
шрифтов является вариант № 2, но с добавлением юникодовых позиций дополнительных
букв. Такие шрифты обеспечивают возможность работы на всех платформах Windows,
практически во всех программах для этих платформ, а также плавный переход
на международный стандарт Unicode.
Автор проекта Esa.Anttikoski@joensuu.fi
|