Informix
Administration
Informix - Locale

Как разобраться с кодировками KOI8 и локалями....

Опубликовано: 25 сен 12
Рейтинг:

Автор: Leonid Belov
Прислал: vasilis

Как разобраться с кодировками KOI8 и локалями....

Все определяется значениями двух переменных окружения:

DB_LOCALE - кодировка, в которой данные хранятся внутри самой базы
CLIENT_LOCALE - кодировка, в которой работает клиент (в Вашем случае - утилита dbimport, следовательно - для Вас это должна быть кодировка, в которой были выгружены данные);

Чтобы все нормально работало, эти кодировки должны быть либо одинаковыми, либо совместимыми (то есть в GLS должна присутствовать таблица перекодировки)

Список всех известных Informix кодировок лежит в файле $INFORMIXDIR/gls/cm3/registry
Пара строчек из него:

KOI-8 57382 # 0xe026 (Russian code page)
CP1251 1251 # 0x04e3 (Microsoft Code Page 1251)

Кодировка koi8 зарегистрирована под номером e026, Windows 1251 - под номером 04e3

Сама кодировка koi8 описана в файле $INFORMIXDIR/gls/lc11/ru_ru/e026.lco
кодировка Windows - соответственно в $INFORMIXDIR/gls/lc11/ru_ru/04e3.lco

Если какого-то из этих файлов нет - соответствующая кодировка не поддерживается в Вашей инсталляции

Таблица перекодировки - если она есть - располагается в двух файлах

$INFORMIXDIR/gls/cv9/e02604e3.cvo
$INFORMIXDIR/gls/cv9/04e3e026.cvo

Если этих файлов нет - кодировки считаются несовместимыми, перекодировка невозможна, и Вы получаете ошибку 23104

Если данные в выгруженных файлах не соответствуют кодировке, указанной в CLIENT_LOCALE, и значения CLIENT_LOCALE и DB_LOCALE не совпадают, получим ошибку 23103

Если CLIENT_LOCALE и DB_LOCALE одинаковы, перекодировка при обмене данными между клиентом и сервером не производится вообще.

Резюме: если выгруженные данные - в koi8, и в базе они тоже должны лежать в koi8, установите перед запуском dbimport в окружении

DB_LOCALE=ru_ru.KOI-8
CLIENT_LOCALE=ru_ru.KOI-8

Комментарии




Необходимо войти на сайт, чтобы оставлять комментарии

Раздел FAQ: Informix / Administration / Informix - Locale / Как разобраться с кодировками KOI8 и локалями....