Kodowanie bazyPierwszą rzeczą jaką musimy wiedzieć to to iż kodowanie bazy, a kodowanie znaków na forum to dwie różne rzeczy. Zazwyczaj każdy serwer po utworzeniu bazy nie poprzez phpMyAdmin nie ma sprecyzowanej przez użytkownika metody porównań znaków.
Tak więc zmieniamy to na metodę porównań znaków utf8_general_ci (standard obsługujący wszystkie znaki) lub latin2_general_ci (standard ISO obsługujący polskie znaki). Osobiście polecam ten pierwszy (czasem serwer sam narzuca nam taką metodę porównań znaków gdyż jest to standard).
Uwaga: Przy każdym przenoszeniu bazy na inny serwer obojętnie jaką metodą wraz z przeniesieniem plików forum lub też nie ustawiamy taką samą metodę porównań znaków dla bazy.Może być tak iż metoda porównań znaków była ustawiona na utf8_general_ci, a tabele były zainstalowane z
latin1_swedish_ci jest to powód gdy nie wybraliśmy przy instalacji skryptu kodowania UTF-8
Warto zauważyć że SMF instaluje bazę jako
latin1_swedish_ci jeśli nie wybrane zostało kodowanie UTF-8 tylko ISO (i właśnie tutaj zaczyna się problem gdy przenosicie forum, czyli na samym początku). Na nowym serwerze ustawienia porównań znaków są inne, importujecie bazę i nie macie pojęcia że właśnie popełniliście błąd i forum będzie źle wyświetlane
Kodowanie znaków na forumGdy instalujemy forum SMF na pierwszej planszy mamy do wyboru kodowanie bazy oraz znaków na forum:
Jeżeli mamy zamiar używać kodowania bazy oraz kodowania znaków na forum w formacie UTF-8 opcja ta musi być zaznaczona i korzystamy wtedy z plików językowych UTF-8.
Jeżeli mamy zamiar używać kodowania ISO zostawiamy tę opcję niezaznaczoną i korzystamy z plików językowych ISO.Z doświadczenia wiem iż osoby mało przywiązujące wagę do instalacji skryptu popełnia trywialne błędy które na końcu powodują błędy w wyświetlaniu forum. Tj.
Kodowanie bazy jak leci>instalacja forum bez zaznaczonej opcji UTF-8>użyte pliki UTF-8
lub
Kodowanie bazy jak leci>instalacja forum z zaznaczoną opcja UTF-8>pliki ISO
To są podstawowe błędy powodowane przez Was w końcu dające wynik po przeniesieniu forum błędnego kodowania.Aby uniknąć problemów po przeniesieniu musimy dobrze wiedzieć w jaki sposób instalowaliśmy forum i co dokładnie zaznaczyliśmy oraz jaka była użyta metoda porównań znaków (najlepiej to sobie zapisać...).
Na koniec dodam iż poniższa forma też jest poprawna tj.
Metoda porównań UTF-8>instlacja bez zaznaczonej opcji>pliki ISO
Konwertowanie bazyTu zaczynają się schody... proszę czytać dalszą część bardzo uważnie gdyż jest odrobinę skomplikowana, ale (mam nadzieję) pomoże wam w rozwiązaniu problemów z kodowaniem.Problem dość szeroko występujący choć sam się czasem głowię dlaczego. Podstawową rzeczą to właśnie metoda porównań znaków oraz znaków używanych na forum.
Jeśli używaliśmy kodowania standardowo narzuconego przez forum, natomiast używaliśmy na forum plików ISO możemy łatwo to przekonwertować. Skrypt sam w sobie posiada opcję do konwertowania znaków na forum, robimy to za pomocą PA>Obsługa Forum>Konwertuj encje HTML na znaki UTF-8. Następnie udajemy się do phpMyAdmin i zmieniamy metodę porównań znaków na utf8_general_ci. Jeśli w dalszym ciągu jest problem ze znakami pobieramy bazę na dysk (forma skompresowana lub nie) otwieramy edytorem tekstu (
edytorem który posiada funkcję zmiany strony kodowej) zaznaczamy cały tekst i konwertujemy do utf8, sprawdzamy dodatkowo czy baza sama mówi jakie mamy kodowanie czyli pod każdą z tabel powinno być coś takiego:
ENGINE=MyISAM DEFAULT CHARSET=utf8Następnie zapisujemy bazę i wysyłamy ją na serwer. Po takim zabiegu mamy bazę oraz forum kodowane w UTF-8.
To raczej było by wszystko... powtórzę jeszcze raz iż pamiętajcie w jaki sposób przenosicie forum, nie wystarczy pobrać bazę z serwera, wgrać go na nowy i wszystko będzie OK bo tak nie będzie...