Как изменить кодировку таблицы в FoxPro?
Можно у Вас получить консультацию:
Не могли бы Вы привести программный код,
который бы для экспортированной
из программы Oracle в FoxPro таблицы obr.dbf
по умолчанию задавал бы для этой таблицы при ее обработке в FoxPro:
тип DBF 4 (dBASE IV) и кодировку (Russian MS-DOS 866) или (1251 - Russian Windows),
иначе при обработке данной таблички в FoxPro, которую изначально экспортируешь из программы Oracle в FoxPro,
получается вместо значений текстовых полей –
значки в виде «+» или «-»,
хотя до обработки в табличке эти текстовые поля
читаемы и нормально видимы.
Мой е-mail: [email]asia.asenka@mail.ru[/email]
Жду Вашего ответа.
С уважением, Ася.
Значки в виде «+» или «-» можно получить, скажем, открыв в FoxPro dbf-таблицу, содержащую текстовые поля в кодировке Ansi, в кодировке (Russian MS-DOS 866).
Возможно, текстовые поля таблицы не содержат более одного символа, иначе Вы могли бы увидеть и другие неверно конвертированные символы.
В любом случае, попытайтесь получить еще раз таблицу из Oracle и открыть ее в FoxPro в другой кодировке (1251 - Russian Windows) - FoxPro изменяет только заголовок таблицы, но не ее содержимое, содержимое лишь неверно отображается.
Попытайтесь установить, в какой кодировке (Ansi или Ascii) находятся данные Вашей таблицы – собственно, это и определит последующие действия. Выбор драйвера языка в FoxPro может не решить языковой проблемы - это зависит от дальнейшего использования таблицы: BDE, ODBC и другие средства доступа настроены независимо и как правило, игнорируют данные заголовка dbf-таблицы. Это, в свою очередь, может привести к необходимости конвертирования данных.
Задача стоит с том, чтобы перекодировать из win1251 (Oracle) в dos866(FoxPro) - при экспорте из Oracle применяйте функцию CharToOem() и все будет прекрасно.