Кодировка данных из dbf
От: TolikLuzin  
Дата: 03.10.03 03:54
Оценка:
Подключил dbf из VB 6.0
CnDBF.ConnectionString = "DSN=Файлы dBASE"
CnDBF.Open
CnDBF.DefaultDatabase = "D:\1\"
rsDBF.Open "table.DBF", CnDBF
rsDBF.Filter = "Code = 12"
S = rsDBF.fields("Name").Value
А в S
содержить типо: ‚Z‘’Z—?Z-‘????‘S?‰ ???S ‘?…????S? ?”
OemToCharBuff и CharToOEMBuff не помогают. Надо вернуть человеческий текст.
Re: Кодировка данных из dbf
От: GarryIV  
Дата: 03.10.03 09:44
Оценка:
Здравствуйте, TolikLuzin! Вы писали:

T> Подключил dbf из VB 6.0

T> CnDBF.ConnectionString = "DSN=Файлы dBASE"
T> CnDBF.Open
T> CnDBF.DefaultDatabase = "D:\1\"
T> rsDBF.Open "table.DBF", CnDBF
T> rsDBF.Filter = "Code = 12"
T> S = rsDBF.fields("Name").Value
T> А в S
T> содержить типо: ‚Z‘’Z—?Z-‘????‘S?‰ ???S ‘?…????S? ?”
T> OemToCharBuff и CharToOEMBuff не помогают. Надо вернуть человеческий
T> текст.

Как вариант:
найти утилиту cpzero (входит в VFP6) и установить правильную codepage для dbf. Или руками поставить в хекседиторе. Смещения и циферек волшебных я не помню за давностью лет....

А в какой кодировке данные в dbf?
Posted via RSDN NNTP Server 1.7 "Bedlam"
WBR, Igor Evgrafov
Re[2]: Кодировка данных из dbf
От: TolikLuzin  
Дата: 06.10.03 01:19
Оценка:
В какой кодировке dbf не известно.
Re[3]: Кодировка данных из dbf
От: al_exus Россия  
Дата: 06.10.03 01:49
Оценка:
Здравствуйте, TolikLuzin, Вы писали:

TL>В какой кодировке dbf не известно.


Hi.

29й байт в заголовке (в десятичной) показывает кодовую страницу:
если с9 -866,
если 65 -1251.

Alex
Re: Кодировка данных из dbf
От: Slider_spb Россия  
Дата: 07.10.03 08:45
Оценка:
TL>OemToCharBuff и CharToOEMBuff не помогают. Надо вернуть человеческий текст.
Странно. Во первых, надо определить в какой кодировке текст в базе. Утлиты типа DBU или DBX нормальный текст показывают? Или Far-ом в DOS кодировке текст виден?
Если базы в DOS кодировке OemToChar и CharTo должно помочь. А если не хочешь с ними возиться, сделай DSN c использованием Microsoft Dbase VPF Driver — он умеет перекодировать из Dos в виндовую кодировку "на ходу", если ему это указать в парметрах настройки.
Если в другой, надо писать дешифратор
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.