Kodowanie polskich znaków w PHP-Fusion

Z ToProste
Wersja z dnia 16:49, 24 lut 2013 autorstwa Victor (dyskusja | edycje) (Zobacz też)

(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Skocz do: nawigacji, wyszukiwania

PHP-Fusion bez problemów obsługuje polskie znaki. Jednak po przeniesieniu skryptu i bazy na inny host często zamiast polskich znaków pojawiają się krzaczki.
Źródłem problemu jest brak ustawienia kodowania znaków dla połączenia z bazą MySQL, a dokładniej ustawienie domyślnego, które zwykle bywa różne od ustawionego w skrypcie.

Aby ustrzec się w przyszłości przed taką niespodzianką, należy przed instalacją PHP-Fusion trochę zmodyfikować dwa pliki: maincore.php i setup.php.
W kodach w/w plików należy odszukać następujący kod:

   $db_connect = @mysql_connect($db_host, $db_user, $db_pass);
   $db_select = @mysql_select_db($db_name);

i zaraz po nim dodać:

   @mysql_query("SET CHARACTER SET utf8"); // Ustawienie kodowania utf-8 dla połączenia z bazą MySQL
   @mysql_query("SET COLLATION utf8_unicode_ci"); // Ustawienie sortowania na utf-8 dla połączenia z bazą MySQL


W/w kod dla połączenia z bazą ustawia kodowanie UTF-8.


A co, jeśli mamy bazę już zawierającą treść i chcemy ją importować?

  1. Zmodyfikuj w/w sposób plik maincore.php.
  2. Zmień kodowanie pliku sql zawierającego dane twojej bazy danych. Najlepiej użyć do tego edytora Notepad++
  3. W pliku sql zawierającym dane twojej bazy danych zamień wszystkie krzaczki na polskie znaki.
  4. Importuj plik sql do bazy.


Zobacz też

<htmlet>zobacz-tez</htmlet>