Kodowanie polskich znaków w PHP-Fusion: Różnice pomiędzy wersjami

Z ToProste
Skocz do: nawigacji, wyszukiwania
m (Utworzył nową stronę „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. <br /...”)
 
m
Linia 2: Linia 2:
 
Źródłem problemu jest brak [[Kodowanie polskich znaków w bazie MySQL|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.
 
Źródłem problemu jest brak [[Kodowanie polskich znaków w bazie MySQL|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ć   
+
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'''.<br />
 +
W kodach w/w plików należy odszukać następujący kod:
 +
 
 +
<syntaxhighlight lang="php">
 +
  $db_connect = @mysql_connect($db_host, $db_user, $db_pass);
 +
  $db_select = @mysql_select_db($db_name);
 +
</syntaxhighlight>
 +
 
 +
i zaraz po nim dodać:
 +
 
 +
<syntaxhighlight lang="php">
 +
  @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
 +
</syntaxhighlight>
 +
 
 +
 
 +
  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ć?
 +
# Zmodyfikuj w/w sposób plik '''maincore.php'''.
 +
# Zmień kodowanie pliku sql zawierającego dane twojej bazy danych. Najlepiej użyć do tego edytora [[Notepad++]]
 +
# W pliku sql zawierającym dane twojej bazy danych zamień wszystkie krzaczki na polskie znaki.
 +
# Importuj plik sql do bazy.
  
  

Wersja z 15:17, 10 paź 2012

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ż