Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > DBF поля ANSII в ANSI


Автор: avosi 5.3.2009, 10:12
Есть таблица DBF. 
При  загружке ряд полей кодируются в кодировке ANSII нужно их перекадировать в ANSI.

Автор: avosi 5.3.2009, 16:09
Пользуюсь следующей строкой подключения

.ConnectionString ="Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c:\\;";

OdbcCommand.CommandText = "select * from 1.dbf";

подключаюсь нормально, получаю следующие данные

Ñ-1  вместо С-1

используя Encoding могу получить это - "?-1" но это тоже не то


пока искал наткнулся на вариант перекодирования в самом запросе, возможно ли такое??

Если нет то как проще перекодировать и прочитать?? 

Автор: Выхухоль 9.3.2009, 12:34
а зачем тебе кодировать в ANSI кодируй в юникод!!

Автор: avosi 10.3.2009, 08:39
На большинстве ПК стоит кодировка ANSI.(С этой же кодировкой работает большинство старых прожек)

Возможно я первоначально нетак вопрос сформулировал, мне нужно из неизвестной кодировки(к примеру UTF-8) привести кодировку к ANSI.

Автор: avosi 18.3.2009, 15:27
 smile 

Автор: Данкинг 18.3.2009, 16:52
Ну так на фоксе и перекодируй...

Автор: bvg77 18.3.2009, 17:14
У мя такая же проблемка, avosi с твоего разрешения переформулирую вопрос, dbf-таблица изначально создана в кодовой странице 866, т.е. ANSII(в ДОС кодировке), при подключении к ней как это делает avosi, руские символы отображаются в ANSI(т.е. в  WIN1251), хелп как раздулить 

Автор: Skynin 18.3.2009, 17:45
Из 
http://www.gotdotnet.ru/Forums/Data/265807.aspx

чтобы прочитать cyrillic dbf файл необходимо:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase 
DataCodePage:OEM заменить на ANSI
CPZERO - удаляет идентификатор кодировки из dbf-файла

select CPCONVERT(866, 1251, fam) as fio from table

А также:
http://msdn.microsoft.com/en-us/library/st4a0s68(VS.71).aspx
Table Header Record Structure:
29    Code page mark

А также в гугле:
CpDbfChange.exe утилита == CpZero.prg без VFP-runtime

Автор: xvar 4.5.2009, 14:58
Как то раз я занимался подобными делами, даже EXE-шник  накропал.

Попробуйте:

Тут CPzero -

http://its.extra.hu/cpzero.htm

А тут CPconvert -

http://its.extra.hu/cpconverter.htm


В принципе работало. 

Удачи Вам.




Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)