![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кодировка в dbf файле [D6, dBase, FoxPro]
red_imp © (2011-01-28 00:17:00)Доброго времени суток.
Никак не могу найти решение проблемы вот решил спросить здесь, мож кто пнет в правильном направлении.
Проблема - из 1С выгружается dbf файлик с данными, при просмотре его обычном просмотрщике (типа dbfview) отображает данные нормально. При подключении через TTable и просмотре через TDBGrid вместо русских символов выдает кракозябры.
Должно быть "АнанасКусДолЖелан580лЖ/Б" выдает "RirirnEonAieCleri580eC/A".
Изменение кодировок в BDE ни к чему не привело.
Тоже самое видно и при просмотре через Database desktop.
Но если зайти в Database desktop и поствить в свойствах таблицы Table lang - ANSI все работает нормально.
Разница между файлами в 1 байте (29 вроде)
В том файле что отображается нормально значение - 57 в том что нет 65.
Это явно не проблема в кодировке Win - Dos. так как в моем случае кирилица отображается латиницей.
Если есть способ нормально подключить не используя БДЕ. подскажите
Буду рад за помощь.
red_imp (2011-01-28 22:29:00) [1]Спасибо всем.
Буду пробовать использовать драйвера Фокспро. Они вроде работают правильно но не на всех машинах.
Ну и обязательно посмотрю движки
Inovet (2011-01-28 22:09:00) [2]> [11] sniknik © (28.01.11 14:59)
> используй лучше встраиваемый движок, типа Halcyon
Ещё лучше ADS, хоть это для просто прочитать и многовато.
sniknik (2011-01-28 14:59:00) [3]> А пробовал вот так
> 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\base\;Extended Properties=dBASE IV'
это Jet, не фокспро, причем без доп. настройки в реестре по умолчанию он использует внешний BDE если установлен, или внутренний BDE если нет. что не добавляет понятности в настройки кодировок... достаточно ошибиться в одном месте, и не работает, после запустить программу на другой машине... и не работает. ;)
у фокса свои проблемы (фичи/тонкости)... т.что советую, используй лучше встраиваемый движок, типа Halcyon (пользовался, правда давно...), там можно признак кодировки в файле попросту игнорировать.
Anatoly Podgoretsky (2011-01-28 14:43:00) [4]Именно так работает Эксель и БДЕ (если не указано другое).
По умолчанию предполагается, что таблица содержит правильные OEM коды, а у него не dBase IV, поскольку "Table lang - ANSI все работает нормально" dBase IV ни Table lang, ни 1251 не поддерживает по определению, это только ФоксПро начиная с версии 2.6 поддерживает, но его не поддерживает БДЕ
MsGuns (2011-01-28 14:10:00) [5]OEMToChar ?
Anatoly Podgoretsky (2011-01-28 13:55:00) [6]> red_imp (28.01.2011 13:46:07) [7]
dBASE IV поддерживает только одну машинную кодировку, и поэтому работа с ней
это разного рода извращения.
red_imp (2011-01-28 13:46:00) [7]> sniknik ©
Да в системе вроде как нет стандартного FoxPro
А пробовал вот так
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\base\;Extended Properties=dBASE IV'
При таком обращении проблема с кодировкой не снимается хотя выдает данные и вылезают ошибки с драйверами.
Если возможно напишите верную строку подключения в которой кодировка символов в файле 1251 или (ANSI).
А еще лучше как настроить так чтоб можно было работать через BDE.
Anatoly Podgoretsky (2011-01-28 13:25:00) [8]> sniknik (28.01.2011 12:16:05) [5]
А что БДЕ не надо ставить?
sniknik (2011-01-28 12:16:00) [9]> Используй АДО и OLEDB провайдера для FoxPro
вроде как, сейчас не включается в винду (OLEDB точно, ODBC хз.), нужно ставить.
> Если возможно напишите правильную строку подключения
если нужно напиши как пробовал
red_imp (2011-01-28 12:08:00) [10]> clickmaker ©
К сожалению нет.
clickmaker (2011-01-28 11:45:00) [11]> Изменение кодировок в BDE ни к чему не привело.
Pdox Ansi Cyr не помогает?
red_imp (2011-01-28 08:39:00) [12]Спасибо, пробовал, но результат аналогичный.
Если возможно напишите правильную строку подключения
Anatoly Podgoretsky (2011-01-28 07:46:00) [13]> red_imp (28.01.2011 00:17:00) [0]
Используй АДО и OLEDB провайдера для FoxPro