phpMyAdmin – przenoszenie bazy i polskie znaki
Dosyć często spotykanym problemem jest złe wyświetlanie polskich „krzaczków” po przeniesieniu bazy na inny serwer. W rzeczywistości, nie jest to żaden błąd oprogramowania, tylko niewłaściwie dobranych ustawień.
Zacznijmy od tego, w jakich formatach mogą byc zapisywane polskie znaki – są to ISO 8859-2 i coraz popularniejszy UTF-8.
phpMyAdmin udostępnia dosyć wygodne opcje służące do importu/eksportu danych do/z bazy. Jednak dosyć często zdarza się sytuacja, że ciężko jest przenieść bazę zachowując jednocześnie nie naruszone diakrytyki. Owszem, można jeszcze zamienić na encję, ale problem należy rozwiązać, a nie obejść.
Korzystając ze świeżych doświadczeń, opiszę krok po kroku, w jaki sposób przenieść zawartość bazy i zachować diakrytyki.
Zacznijmy na początek od przygotowania pliku wejściowego. Możemy go wykonać poprzez polecenie mysqldump bądź phpMyAdmina. Mało który hosting udostępnia możliwość korzystania z poleceń powłoki, więc najpewniej będziemy skazani na phpMyAdmina.
W panelu startowym źródłowego PMA zmieniamy zestaw kodowania znaków do połączenia na utf8_unicode_ci. Potem przechodzimy do interesującej nas bazy i dokonujemy eksportu danych korzystając z kodowania utf8 dla pliku wynikowego. Reszta opcji, według potrzeb. ;]
Zapisujemy tak wygenerowany plik.
Przechodzimy teraz do PMA połączonego z serwerem docelowym. Tworzymy nową bazę/czyścimy istniejącą (albo usuwamy istniejące tabele, które mogłyby się zduplikować) i teraz klikamy na zakładkę Operacje. Zmień kodowanie w polu zestaw znaków na utf8_polish_ci. Zapisujemy zmiany.
Teraz importujemy do bazy utworzony wcześniej plik z danymi. Wszystkie polskie znaki powinny być już prawidłowo wyświetlane zarówno w phpMyAdminie jak i na stronie korzystającej z danych.
Dzieki za kupe dobrych rad! Taka operacja, o ktorej piszesz powyzej czeka mnie w bliskiej przyszlosci i naprawde nie mialbym czasu na testowanie i wgryzanie sie w szczegoly.