Кодировка полей в базе формата dbf

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Кодировка полей в базе формата dbf

Re: Кодировка полей в базе формата dbf

Serge_Bliznykov » 15 окт 2008, 22:27

&quot писал(а):Всё дело в том, что таблицы DBF используют кодировку OEM, т.е. для кириллицы это будет кодовая страница 866(MS-DOS), а в Windows-приложениях
для русского языка используется кодовая страница 1251(ANSI).
не надо быть столь категоричным! всё не так ужасно. кодировку можно использовать любую. просто я на этих DBF уже не первую собаку дожёвываю... :-)
В заголовке DBF есть (и всегда был, ну, по крайней мере с 1994 года) байтик по смещению 29 (0x1D) - в этом байтике хранится кодовая таблица (для таблицы в кодировке 866 (MS-DOS) этот байтик равен 0x65, для кодировки 1251 - байтик 0xC9)

AleksP, насколько я понимаю, Вы с DBF работаете через TTable
значит, Вы работаете через BDE (кстати, далеко не самый лучший вариант ;-(( )
Вот заходите в настройки BDE через BDE Administrator и там настраивайте кодовую страницу для DBASE и Foxpro...
И реально подумайте, нужно ли Вам это устаревшее (я бы даже сказала - почти успошее BDE), или лучше использовать другие технологии?...

удачи.

______________________________________________________________________________________________

добавлено
тьфу на вас....
Airhand - что ж Вы некропостерством занимаетесь!?!? ;-( подняли тему. И кинулись люди отвечать...
а вопрос то был два месяца назад задан! AleksP небось уже и программу закончил и в отпуск ушёл, а Вы устраиваете ажиотаж... ;-(

Re: Кодировка полей в базе формата dbf

WinMain » 15 окт 2008, 14:01

Всё дело в том, что таблицы DBF используют кодировку OEM, т.е. для кириллицы это будет кодовая страница 866(MS-DOS), а в Windows-приложениях для русского языка используется кодовая страница 1251(ANSI). Поэтому перед записью текста в таблицу нужно выполнять конвертацию строк из одной кодовой страницы в другую. Можешь воспользоваться функцией CharToOem()

Re: Кодировка полей в базе формата dbf

Airhand » 15 окт 2008, 13:08

Как установить кирилицу, я не знаю. Но лучше ею не пользоваться, т.к. другие проги могут её не понять и покалечить таблицу. Попробуй создавать таблицу скриптом SQL.

Кодировка полей в базе формата dbf

AleksP » 30 авг 2008, 00:57

База в формате dbf создается при помощи следующего кода:

Код: Выделить всё

DataModule2->Table1->Active = false;

DataModule2->Table1->DatabaseName = "";
DataModule2->Table1->TableName = "test.dbf";
DataModule2->Table1->TableType = ttDBase;

DataModule2->Table1->FieldDefs->Add(...);
Как установить кодировку для полей на кириллице при открытии базы в другом приложении на C++ Builder?

Вернуться к началу