Показать сообщение отдельно
Старый 06.03.2017, 15:29   #11  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,656 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
1. Стандарт файлов DBF не предусматривает UNICOD. Только какая-либо одна кодовая страница
2. В старых версиях DBF кодовая страница не указывалась совсем. Именно с этим связаны многие проблемы "перевода"

По стандарту, признак кодовой страницы записывается в 29 байте файла DBF (первый байт имеет порядковый номер 0. Т.е. физически - это 30 "символ", если открыть DBF как текстовый файл)

Некоторые стандартные значения кодовых страниц

Код:
Code page Platform 		Code page identifier 

437 	 U.S. MS-DOS 		x01 (1)
866 	 Russian MS-DOS 		x65 (101)
1251 	 Russian Windows 	xC9 (201)
1252 	 Windows ANSI 		x03 (3)
10000 	 Standard Macintosh     x04 (4)
Как правило, если кодировка не указана явно, то подразумевается кодовая страница 866. Т.е. в 29 байте должен быть записан ASCII-код = 101.

-----

PS: Файлы DBF старых форматов в кодовой странице 866 открываются MS Excel как "родные" файлы XLS. В списке доступных форматов для выбора их нет, но если явно указать имя файла - сможет корректно прочитать. Правда, не уверен насчет последних версий Excel.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 06.03.2017 в 15:39.
За это сообщение автора поблагодарили: Logger (1), kefir_nasty (1).