Po aktualizacji WordPressa do wersji 4.1.2 wiele osób zgłasza problemy z zapisem swoich wpisów. Ze względu na to, że ta wersja mocno uwzględnia kodowanie znaków wprowadzanych do bazy, tam zacząłem szukać rozwiązania.
Dla jednego z moich klientów kluczowe okazało się sprawdzenie i zmiana ustawienia w bazie danych.
Zarówno tabele jak i pola dla własności „Metoda porównywania stringów” miała nieprawidłową wartość. Tutaj konkretnie było to „latin2_general_ci„, a powinno być jest „utf8_general_ci„.
Po zmianie zarówno dla tabel, jak dla pól wszystko zaczeło działać poprawnie.
Uwagi:
- Zanim zaczniesz to zmieniać zrób kopię bazy – można ją kompletnie rozwalić.
- Pokazana zmiana dotyczy bazy kodowanej w UTF8 jak masz kodowanie inne, to „Metoda porównywania stringów” musi być dobrana do kodowania.
- Jeżeli w twoim przypadku nie ma tego błedu lub nie poprawiło się, to daj znać w komentarzach.
jbg
Próba zmiany w post_content na kodowanie utf8_general_ci powoduje błąd #1283 – Column 'post_content’ cannot be part of FULLTEXT index .
Marcin Pietrzak
Nie umiem odpowiedzieć na to pytanie/stwierdzenie.
jbg
Problem został rozwiązany poprzez jednoczesną zmianę kodowania we wszystkich wartościach zawierających fulltext.
Paweł
Masz ustawiony fulltext na kolumnie post_content ?
-jeżeli tak, to może najpierw usuń z niej indeks, zmień kodowanie i ponownie ustaw na fulltext.
Możesz też spróbować konwersji z palca >> https://codex.wordpress.org/Converting_Database_Character_Sets
mirek kozlowski
No tak ale skad sie biora te roznice? Czy domyslnie WP nie instaluje sie z obsluga wlasnie w UTF8 a tu nagle latin?
Marcin Pietrzak
WP może zrobić tylko to na co pozwala serwer mysql’a.
Krzychu
Właśnie pojawiła się nowa wersja WPressa z numeracją 4.2 – kodowanie jest poprawione i dodawanie treści z pl-ogonkami działa poprawnie
Marcin Pietrzak
Super! Ale wartości COLLATE warto i tak poprawić, bo to może wrócić.
Paweł
Poprawili jeszcze przed 4.2, szybkim wydaniem poprawkowym 4.1.3 ( https://core.trac.wordpress.org/ticket/32051 ).
Ale jak Marcin już wspomniał, warto zrobić sobie porządek kodowaniem bazy.
Niestety, ale w hostingach często spotkać można różne egzotyczne defaultowe ustawienia …a i ludzie nieraz nie zwracają uwagi co ustawiają przy tworzeniu – potem różne cuda wyłażą.