Mam problem z synchronizacja baz danych. Próbowalem robić to na kilka sposobów.
Pliki baz danych Fox Pro (pliki dbf) sa w formacie cp866 - rosyjska czcionka, chce przekonwertowac je na utf-8 i:
Plik konwertuje się prawidłowo, otwieram do odczytu z konsoli widzę cyrylicę. Do synchro używam dbf2mysql. Przed konwersja plik sie laduje do mysql ale sa krzaki(to odpada), po konwersji dostaje blad \\\"Invalid Header\\\". Plik dbf mozna otworzyc w OpenOffice. Przykladowo mam plik zawierajacy 2 kolumny w headersie Code,N,4,0 i Name,C,20. Zmieniajac recznie header Name,C,20 na Name,C,80, po konwersji iconv (tym shell\\\'owym) i po synchronizacji wszystko jest OK - tylko ze tych plików jest ok 100 i sa codziennie zmieniane.
Pytanie: Czy można jakoś wyedytować nagłówki kolumn w pliku DBF?(chodzi mi o skrypt, narzedzia shellowe) bez modyfikowania plików recznie.
Domyślam się zapis w cyrylicy slowa jest krotszy niz w utf-8 i pole Name zamiast maksymalnie zawierac 20znakow zajmuje wiecej i to powoduje blad po konwersji z cp866 na utf-8.
Plik dbf po otwarciu OpenOfficem(w cp866)
- CODE,N,4,0 NAME,C,20
- 1 ул.Мореходная
- 2 ул.Мореходная
- 3 ул.Мореходная
po hexdumpie - same nagłówki kolumn
pobierz, plaintext
- 00000000 03 09 07 10 e6 02 00 00 61 00 55 00 00 00 00 00 |........a.U.....|
- 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
- 00000020 43 4f 44 45 00 00 00 00 00 00 00 4e 00 00 00 00 |CODE.......N....|
- 00000030 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
- 00000040 4e 41 4d 45 00 00 00 00 00 00 00 43 00 00 00 00 |NAME.......C....|
- 00000050 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |P...............|
Pliki dbf dostaje tylko do odczytu, ewentualnie moge je kopiwac tymczasowo do tempa.
Jakieś sugestie odnośnie synchronizacji?
Może idę w złą strone, probujac edytowac naglowki?
dzieki z gory za pomoc
pozdrawiam