Стандарт Unicode для кодировки символов был предложен некоммерческой организацией Unicode Consortium. Для представления каждого символа в этом стандарте используются два байта, что позволяет закодировать очень большое число символов из разных письменностей. В документах Unicode могут соседствовать русские, латинские, греческие буквы, китайские иероглифы и математические символы. Кодовые страницы при использовании Unicode становятся ненужными.
Коды в Unicode разделены на несколько областей. Область с кодами от 0000 до 007F содержит символы набора Latin 1 (младшие байты соответствуют кодировке ISO 8859-1). Далее идут области, в которых расположены знаки различных письменностей, а также знаки пунктуации и технические символы; часть кодов зарезервирована для использования в будущем. Символам кириллицы выделены коды в диапазоне от 0400 до 0451.
Для работы с документами Unicode нужны соответствующие шрифты. Как правило, файл шрифта Unicode содержит начертания не для всех символов, определенных в стандарте, а лишь для символов из некоторых областей.
Кодировка формата Unicode. Unicode - это универсальная международная кодировка, которая предусматривает выделение для набора символов каждого языка определенной непрерывной последовательности двоичных чисел. Символы Unicode хранятся в виде 16-разрядных чисел, что позволяет представить свыше 60 тысяч различных символов, но на каждый символ расходуется два байта памяти. Набор символов латинского алфавита (то есть символов английского языка) и математические символы считаются в Unicode основными и размещаются в диапазоне 0020h-007Eh. Преобразование латинских символов из формата Unicode в ASCII-код сводится к простому отсечению старшего байта символа. Символы русского языка (Cyrillic) размещаются в диапазоне 0410h-044Fh (см. рис.1 и рис.2).
Рис. 1. Кодировка латинских и математических символов в формате Unicode.
Рис. 2. Представление символов русского алфавита в формате Unicode.
Начиная с ядра еще Windows NT, ее графический интерфейс (GDI) и файловая система NTFS уже были реализованы с использованием Unicode. Программы, запущенные в среде Windows NT, могли работать также с однобайтовыми символами, кодировка которых в этом случае соответствует установленной по умолчанию кодовой странице ANSI (для России - Windows Cyrillic, или СР 1251). Перед вызовом некоторых функций программного интерфейса Windows NT программы, работающие с кодовой страницей ANSI, преобразуют однобайтовые символы в Unicode. Чтобы преобразование выполнялось без ошибок, пользователь должен правильно указать страну в приложении Regional Settings.
Выяснить, какие наборы символов присутствуют в том или ином шрифте Unicode, можно было с помощью стандартной утилиты Character Map (таблица символов), включенной в состав Windows NT.
Использование Unicode значительно упрощает создание многоязычных приложений. Поэтому, создавая программы с прицелом на этот стандарт, вы закладываете неплохую базу для локализации своего программного продукта.