WordPress 2.8 – brak ogonków. Odsyfianie bazy.

I oto jestem. Z powrotem w domu. Wybaczcie tą niską częstotliwość publikowania, ale siła wyższa. I najlepiej zacząć od mojego nieudanego startu.

Niedawno stwierdziłam, że warto zacząć blogować poczynając od aktualizacji WordPressa do wersji 2.8. Tak też zrobiłam i momentalnie cały mój zapał został zgaszony – po aktualizacji wywaliło mi wszystkie polskie znaki.
Tak naprawdę nie byłam zaskoczona, bo moja baza zawsze miała problem z kodowaniem(rzekomo jest na latin2), a to ma swoje korzenie jeszcze za czasów mojego pierwszego hostingu. Będąc wtedy większym laikiem niż teraz, zapamiętałam jedynie to, że Superhost.pl robiło syf z kodowaniem bazy danych, niebawem odczułam to przy zmianie serwera na Dreamhost przy importowaniu bazy.

Kiedyś mnie to samo spotkało przy okazji aktualizacji i ostatecznie rozwią… tymczasowo zażegnałam problem. Bowiem rzekome rozwiązanie nie rozwiązywało problemu bazy, wiec trudno nazwać to rozwiązaniem. I tym razem się to na mnie odegrało, bo dawny sposób nie działał.

Po intensywnych poszukiwaniach, których rezultat się opierał na pradawnych wersjach wordpressa, stwierdziłam, że chyba najwyższy czas skonwertować bazę na utf-8. Nie ot zmiana etykietki z kodowaniem tabeli, tylko ingerencja w znaki w bazie. Od razu uprzedzę, że notepad++ nie dałby sobie z konwersją rady, próbowałam.
Znalazłam kilka skryptów i wtyczek do wordpressa, z czego wszystko wyglądało dość prowizorycznie a żadna wtyka nie gwarantowała bo były używane tylko na starych wersjach.
Konwersja bazy – jasne, nie ma problemu. Tylko, że tabele post_content i post_title w wp_posts posiadają jakieś indeksy typu FULLTEXT. I to, w jakiś tam dziwaczny sposób blokuje konwersje danych. Trzeba więc było ten indeks tymczasowo usunąć przez phpMyAdmina. A gdy już się pozbyłam indeksu (zapamiętać, żeby go potem dodać z powrotem), zainstalowałam wtyczkę BBWP2UTF8, ale zanim się ją uruchamia trzeba dodać następującą rzecz do wp-config.php
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

No to sru i konwersja pomyślnie przebiega z latin2(lub latin1, co za różnica) do utf-8_general_ci.

A to linki do innych skryptów, ale już nie wtyczek, które działają mniej więcej na tej samej zasadzie. Nie wiem tylko dlaczego u mnie nie zadziałały, chociaż wiem, że powinny.
http://yihui.name/en/2009/05/convert-mysql-database-to-utf-8-in-wordpress/

http://www.mydigitallife.info/2007/06/23/how-to-convert-character-set-and-collation-of-wordpress-database/

Zapewne niektórzy z was pukają się w czoło czytając moje wypociny. No cóż, laik musi sobie jakoś radzić :-)
Przynajmniej mam nadzieję już nie miewać problemów z bazą.

8 Comments

Michał Cichocki 14/06/2009

Nieważne jak, ważne że działa :). Brawo.

Jurgi 14/06/2009

Moja platforma blogowa od zawsze na szczęście perfekcyjnie używa utf, dzięki czemu mogę używać „prawdziwych” cudzysłowów, prawdziwego znaku mnożenia i dzielenia: „×÷”, prawdziwego wielokropka: „…”, czy wklejać cytaty w dowolnym języku, co bardzo sobie cenię.
Właśnie, ciekawe, czy teraz mi to tu w komentarzu przyjmie, czy pozamienia na pytajniki, jak nieszczęsny blox?

Lanooz 14/06/2009

@Jurgi: A jednak nie. Jest ślicznie ;)

Lemony. 20/06/2009

Ja Dobrą Prozę zarejestrowałem na ovh, bo słyszałem dobre opinie :)

Jurgi 20/06/2009

Skoro działa, no mały pokaz, dlaczego warto się pomęczyć i obsługiwać unicode (mam nadzieję, że się uda):

गतशोकं न कुर्वीत भविष्यं नैव चिन्तयेत
वर्तमानेशु कार्येशु वर्तयन्ति विचक्शन

Właśnie dlatego nie lubię smętnego blox.pl, gdzie nie można wstawić nic, co odbiega od smętnego minimum na klawiaturze.

karma berlin 29/06/2009

jej też jestem ofiarą obowiązkowej matmy w przyszłym roku…
podziwiam Twoje komputerowe ogarnięcie, brak mi tego. :)
pozdrawiam , zapraszam.

ZU 09/07/2009

Lan, ja już zrobiłam downgrade do 2.7, bo w 2.8 “zamraża się” Dashboard i nawet zwykłe dodanie fotki do posta trzeba robić strasznie naokoło.

Karolina 20/07/2009

Ja tak trochę z innej beczki. Plugin lastfm wyświetla Ci paskudny błąd – tutaj do pobrania naprawiony plik http – klik po plik.