Witam.
Wiem, że temat przenoszenia forum i problemu z kodowaniem wałkowany jest co rusz, ale większość takich jak ja, dopiero przy próbie przenosin styka się z tematem, a co drugi wątek w sieci jest zamykany, bo "to już było, poszukaj w google" itd.
Mam forum na mojeforum.net, gdzie niestety psy już zawracają, chcę je skonwertować z phpbb2 do phpbb3 i przenieść na inny hosting.
Nie robiłem tego wcześniej, nie znam się na PHP, ale szybko się uczę, więc poszperałem tu i tam, zainstalowałem WebServ, i na nim testuję.
Problem przy którym utknąłem na dobre to kodowanie.
Plik sql zapisany jest w latin1, przekonwertowałem go na utf8 za pomocą konwertera Tośka. W pliku, przy użyciu Notepad++ zamieniłem wszystkie CHARSET=latin1 na CHARSET=utf8. Nie wiem czy dobrze to wykombinowałem - taki trick znalazłem gdzieś w sieci, by uniknąć zabawy z ustawieniem tabeli już po instalacji. Jeżeli to błąd to mnie naprostujcie.
Zapisałem plik z kodowaniem na utf8 bez BOM i zaimpotrowałem przez phpMy Admina.
Pozmieniałem kodowanie w ustawieniach WebServ na takie:
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
collation_connection utf8_general_ci
collation_database utf8_unicode_ci
collation_server utf8_unicode_ci
W pliku my.ini, pod [mysqld] dołożyłem linijki:
character-set-server=utf8
collation-server=utf8_unicode_ci
W pliku C:\WebServ\httpd\index.php zmieniłem linijkę
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
Problem jest taki, że z poziomu przeglądarki mam krzaki - strona domyślnie ustawia się na latin1 - przy wysyłaniu postu wiadomość ucinana jest przy pierwszej polskiej literze.
Po zmianie zestawu znaków na utf8, krzaki znikają, posty wysyłają się prawidłowo, z polskimi literami i forum wygląda jak trzeba, ale strona przy każdym zapytaniu, odświeżeniu itd, automatycznie przestawia się na latin1, nie wiem czemu i nie wiem jak to ugryźć.
Jeszcze głupie pytanie, czy ma znaczenie jak się zapisuje kodowanie, bo spotkałem się z różnymi wersjami: utf8, utf-8, UTF-8?