Конференция "Базы" » Кодировка в dbf файле [D6, dBase, FoxPro]
 
  • red_imp © (28.01.11 00:17) [0]
    Доброго времени суток.
    Никак не могу найти решение проблемы вот решил спросить здесь, мож кто пнет в правильном направлении.
    Проблема - из 1С выгружается dbf файлик с данными, при просмотре его обычном просмотрщике (типа  dbfview) отображает данные нормально. При подключении через TTable и просмотре через TDBGrid вместо русских символов выдает кракозябры.
    Должно быть "АнанасКусДолЖелан580лЖ/Б" выдает "RirirnEonAieCleri580eC/A".
    Изменение кодировок в BDE ни к чему не привело.
    Тоже самое видно и при просмотре через Database desktop.
    Но если зайти в Database desktop и поствить в свойствах таблицы Table lang - ANSI все работает нормально.
    Разница между файлами в 1 байте (29 вроде)
    В том файле что отображается нормально значение  - 57 в том  что нет 65.
    Это явно не проблема в кодировке Win - Dos. так как в моем случае кирилица отображается латиницей.
    Если есть способ нормально подключить не используя БДЕ. подскажите
    Буду рад за помощь.
  • Anatoly Podgoretsky © (28.01.11 07:46) [1]
    > red_imp  (28.01.2011 00:17:00)  [0]

    Используй АДО и OLEDB провайдера для FoxPro
  • red_imp © (28.01.11 08:39) [2]
    Спасибо, пробовал, но результат аналогичный.
    Если возможно напишите правильную строку подключения
  • clickmaker © (28.01.11 11:45) [3]
    > Изменение кодировок в BDE ни к чему не привело.

    Pdox Ansi Cyr не помогает?
  • red_imp © (28.01.11 12:08) [4]
    > clickmaker ©
    К сожалению нет.
  • sniknik © (28.01.11 12:16) [5]
    > Используй АДО и OLEDB провайдера для FoxPro
    вроде как, сейчас не включается в винду (OLEDB точно, ODBC хз.), нужно ставить.

    > Если возможно напишите правильную строку подключения
    если нужно напиши как пробовал
  • Anatoly Podgoretsky © (28.01.11 13:25) [6]
    > sniknik  (28.01.2011 12:16:05)  [5]

    А что БДЕ не надо ставить?
  • red_imp © (28.01.11 13:46) [7]
    > sniknik ©
    Да в системе вроде как нет стандартного FoxPro

    А пробовал вот так
    'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\base\;Extended Properties=dBASE IV'
    При таком обращении проблема с кодировкой не снимается хотя выдает данные и вылезают ошибки с драйверами.

    Если возможно напишите верную строку подключения в которой кодировка символов в файле 1251 или (ANSI).
    А еще лучше как настроить так чтоб можно было работать через BDE.
  • Anatoly Podgoretsky © (28.01.11 13:55) [8]
    > red_imp  (28.01.2011 13:46:07)  [7]

    dBASE IV поддерживает только одну машинную кодировку, и поэтому работа с ней
    это разного рода извращения.
  • MsGuns © (28.01.11 14:10) [9]
    OEMToChar ?
  • Anatoly Podgoretsky © (28.01.11 14:43) [10]
    Именно так работает Эксель и БДЕ (если не указано другое).
    По умолчанию предполагается, что таблица содержит правильные OEM коды, а у него не dBase IV, поскольку "Table lang - ANSI все работает нормально" dBase IV ни Table lang, ни 1251 не поддерживает по определению, это только ФоксПро начиная с версии 2.6 поддерживает, но его не поддерживает БДЕ
  • sniknik © (28.01.11 14:59) [11]
    > А пробовал вот так
    > 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\base\;Extended Properties=dBASE IV'
    это Jet, не фокспро, причем без доп. настройки в реестре по умолчанию он использует внешний BDE если установлен, или внутренний BDE если нет. что не добавляет понятности в настройки кодировок... достаточно ошибиться в одном месте, и не работает, после запустить программу на другой машине... и не работает. ;)

    у фокса свои проблемы (фичи/тонкости)... т.что советую, используй лучше встраиваемый движок, типа Halcyon (пользовался, правда давно...), там можно признак кодировки в файле попросту игнорировать.
  • Inovet © (28.01.11 22:09) [12]
    > [11] sniknik ©   (28.01.11 14:59)
    > используй лучше встраиваемый движок, типа Halcyon

    Ещё лучше ADS, хоть это для просто прочитать и многовато.
  • red_imp © (28.01.11 22:29) [13]
    Спасибо всем.
    Буду пробовать использовать драйвера Фокспро. Они вроде работают правильно но не на всех машинах.
    Ну и обязательно посмотрю движки
 
Конференция "Базы" » Кодировка в dbf файле [D6, dBase, FoxPro]
Есть новые Нет новых   [134431   +15][b:0][p:0.001]