Корпоративные базы данных - статьи


1. Национальные алфавиты и таблицы кодировок



В каждой стране используется свой алфавит - набор символов (немецкий, французский, испанский,
русский). Для их представления обычно используются "Таблицы Кодировок", содержащие коды от
нуля до двухсот пятидесяти пяти. Однако в некоторых случаях одного байта не хватает для
представления всех символов алфавита (китайский, японский, корейский). PROGRESS
предоставляет возможность работы как с однобайтовыми и двубайтовыми таблицами
кодировок.

В России известно несколько Таблиц Кодировок альтернативная, основная, дополнительная. В
операционных системах DOS, MS-WINDOWS, UNIX также используются различные Таблицы
Кодировок. Рассмотрим как в Progress осуществляется описание, настройка и динамическое
преобразование Таблиц Кодировок для различных операционных систем и оборудования.
Описанный ниже алгоритм позволяет освободить разработчика от задач, связанных с
локализацией продуктов и настройкой их на работу в конкретном операционном окружении, что
значительно облегчает его работу и экономит время, необходимое на разработку и сопровождение
программного продукта.

Вся информация необходимая для настройки Таблиц Кодировок, в PROGRESS они называются
кодовыми страницами, содержится в файле convmap.cp. Этот файл хранится во внутреннем
формате PROGRESS, и создается специальной утилитой из обычного текстового файла
convmap.dat.


В данном файле хранится несколько специальных таблиц, двух типов - определения кодовых
страниц и правил сортировки.


  1. Для каждой кодовой страницы определяется таблица букв - ISALPHA, в которой указывается
    является ли символ буквой или нет (знак пунктуации, цифра и т.д.). Progress использует эту
    таблицу для проверки символов при вводе с определением формата. Таблица ISALPHA состоит из
    256 полей, пронумерованных от 0 до 255. Каждое поле соответствует одному символу кодовой
    таблицы. Если символ является буквой, то в соответствующем ему поле стоит значение 001. В
    противном случае значение поля равняется 000.

    Для каждого символа от 0 до 255, является ли он буквой или нет.


    - Начало -  - Назад -  - Вперед -