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.