Kodowanie polskich znaków w PHP-Fusion: Różnice pomiędzy wersjami
Z ToProste
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ć?
- 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.