PDA

Zobacz pełną wersję : Kodowanie bazy danych - proszę o pomoc



torrent
29-12-2007, 13:15
Wiem, iż problem kodowania bazy danych MySQL był wielokrotnie poruszany, ale mimo wertowania internetu, nie mogę znaleźć rozwiązania mojego problemu. Na serwerze mam następującą sytuację: mogę stworzyć bazę danych kodowaną latin2_genaral_ci - metoda porównywania napisów i podczas zrzutu bazy danych w pliku sql taka informacja jest zawarta. W phpMyAdmin na serwerze czytam jednak: system kodowania znaków dla MySQL - UTF-8 Unicode, system porównań dla połączeń MySQL - utf8_unicode_ci, wersja phpMyAdmin - 2.10.02, wersja klienta MySQL - 4.1.22. Podczas instalacji różnych wersji Mambo lub ostatniej Joomla! nie ma żadnych problemów i polskie znaki wyświetlane są prawidłowo. Problem pojawia się, gdy chcę przenieść bazę danych na lokalny komputer z zainstalowanym Krasnalem 2.7, wersja phpMyAdmin - 2.6.0, wersja klienta MySQL - 4.1.11, system kodowania znaków dla MySQL - UTF-8 Unicode, system porównań dla połączeń MySQL - utf8_polish_ci. Po wczytaniu bazy danych w phpMyAdmin CMS-y wyświetlają niepoprawnie polskie znaki, mimo, iż wczytana baza danych również wykazuje kodowanie latin2_genaral_ci. Podczas instalacji CMS-ów na lokalnym komputerze nie ma problemów, polskie znaki wyświetlane są prawidłowo w stworzonej bazie danych o kodowaniu latin2_genaral_ci czy w kodowaniu utf8_polish_ci. Podsumowując: instalacje CMS-ów na serwerze i lokalnym komputerze są bezproblemowe, wyświetlanie polskich znaków również, kodowanie teoretycznie odpowiednie (lub źle je odczytuje!), a wyświetlanie polskich znaków po przeniesieniu bazy danych niepoprawne (w obie strony). Przenosząc bazę danych z jednego serwera na drugi nie miałem żadnych problemów. Więc chyba winna jest konfiguracja lokalnego komputera? Proszę o pomoc. Jest to dla mnie bardzo ważne, ponieważ mam dostęp do internetu poprzez sieć komórkową (tragedia) i praca on-line jest mozolna. Wyjściem jest stworzenie bazy danych na lokalnym komturze i wysłanie na serwer, ale te ogonki...

stone
29-12-2007, 21:15
Problem jest taki ze jest niezgodność pomiedzy kodowaniem mysql (utf8) a kodowaniem tabel (iso) i o ile przy instalacji odbywa sie wszystko ok to eksport juz moze byc bolesny bo phpmyadmin głupieje w takiej sytuacji i robi sieczkę. Powiem szczerze ze juz troche baz przenosilem i nie mam jednoznacznej odpowiedzi jak to obejsc. To co moge zasugerowac
1.Po eksporcie sprawdz jak sa kodowane znaki w wyeksportowanym pliku - czy jest to iso czy utf, czy tez znaki ? bez znaczenia.
2. Zwróć uwagę aby przy eksprocie system porównań był nastawiony na latin2 a jezyk na polski i to samo przy imporcie
3. importuj narzędziem zewnętrznym np bigdump http://www.ozerov.de/bigdump.php
4. Próby aż do skutku najlepiej z jedna tabela (najlepiej content) i sprawdzanie czy po imporcie w bazie litery sie wyswietalja

torrent
31-12-2007, 11:02
Bardzo dziękuję za pomoc. Po wielu próbach pozostawiłem ustawienia na serwerze i lokalnym komputerze takie jak opisałem z jedną zmianą: na komputerze lokalnym w phpMyAdmin zmieniłem system porównań dla połączeń MySQL z utf8_polish_ci na utf8_unicode_ci. Pomogło. I na razie się nie cieszę - zbyt dużo przypadku. Testuję. Już nic mnie nie zdziwi, a aktualizacja oprogramowania na serwerze (co przeżyłem) może przywrócić problem.