Upgrade do WordPress 2.8 i problem z kodowaniem polskich znaków

I’m sorry if you are an English spoken reader but this post is published in Polish. The reason for that is it describes a problem with encoding of some Polish characters after upgrading to WordPress 2.8, so a problem that only Poles should be interested in.
This blog is still supposed to be maintained in English so please do not get discouraged.

Dziś postanowiłem zrobić upgrade swojego fotobloga z WordPress 2.6.1 na 2.8. Wszystko poszło sprawnie ale okazało się, że kodowanie polskich znaków totalnie się posypało – zamiast nich kwadraciki i krzaczki.

Pomimo mocnego zaplecza, przyznam, że zabawa z kodowaniem znaków totalnie mi nie odpowiada. Miałem już kiedyś problem z ukraińską stroną znimky.net, która stała się nieczytelna po zmianie MySQL z 4.0 na 4.1. Po długich bojach problem został rozwiązany poprzez dodanie poniższych 3 linii kodu PHP po ustnawieniu połączenia z bazą danych:

mysql_query("SET character_set_results="utf8"");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET NAMES "utf8"");

Zacząłem szukać ale nie znalazłem zbyt wiele…

Dwa najciekawsze zasoby to Polski Support WordPress oraz post Polskie znaki w WordPress na serwerze home.pl. Ten ostatni okazał się strzałem w dziesiątkę, chwila zabawy i blog znów był czytelny!

W moim przypadku rozwiązaniem było edycja pliku /wp-includes/wp-db.php. Tak jak radził Luke Szkudlarek, na końcu funkcji select($db) dodałem ustalanie kodowania połączenia z bazą danych:

mysql_query('SET NAMES latin2');

W moim przypadku musiałem użyć innego kodowania. Zmiana ustawień Wordpresa (Options -> Reading) nie była konieczna.

Previous Post
Next Post