vermin.eu.org

Specjalista IT na tru^Hopie

Entries Comments



wordpress i kodowanie znaków suxorz

12 November, 2007 (02:03) | wordpress | By: vermin

Po prostu nie mogę dojść do porozumienia z moim wordpressem. A dokładniej z kodowaniem znaków. Sytuacja wygląda następująco - baza mysql ma kodowanie utf8. Dane w tablicach są zapisane w utf8 - sprawdziłem wg kodowania phpmysqladmin (strona utf8), sprawdziłem także zakładając drugiego bloga na tej samej bazie danych (inny przedrostek tabel) i kopiując do jego tabeli posts dane z tej tabeli posts (poprzez INSERT INTO * SELECT *). Obydwa blogi pracują na jednej bazie danych, na jednym serwerze, wszystko wygląda podobnie. Jedyna różnica pomiędzy blogami to to, że w jednym jest ustawione w wordpress kodowanie iso-8859-2 a w drugim utf-8. Ustawienie w pierwszym utf-8 powoduje totalne krzaczenie.
Jest to (chyba?) absurdem - przecież jeśli dane są w utf8 to ustawienie iso8859-2 powinno powodować krzaki a nie odwrotnie :/ Wordpress ma jakieś mechanizmy rekodujące ustawienie przeglądarki na ustawienia bazy danych. Musi mieć bo piszę to w iso a zaraz obejrzę na drugim blogu w utf. Niemnie - czy ktoś ma pomysł jak to namierzyć?

Comments

Comment from zx
Time: 12/11/07, 14:48

A może serwer ma odgórnie wymuszone ISO? Ostatnio sam się kilka ładnych godzin bawiłem z tym (phpMyAdmin ustawione UTF, dane wysyłane i wyświetlane w UTF, a krzaki rosły jak szalone). Potem kontakt z adminem, a ten mi, że w takim razie wyłączył mi wymuszanie ISO. I tyle.

Comment from archon
Time: 25/12/07, 3:31

No w mysqlu chyba jest cos takiego jak connection charset nie?

Comment from vermin
Time: 26/12/07, 22:26

może i jest - ale gdzie to się ustawia w kontekście wordpressa? :)

Comment from rav
Time: 19/03/08, 21:51

poza kodowaniem bazy danych jest jeszcze coś takiego jak połączenie z bazą danych, ja przykładowo mam coś takiego:

$db = new mysqli($host,$user,$haslo,$baza);
$db -> query(”SET NAMES ‘latin2′”);

żeby wszystko dziłało musisz ustawić takie samo kodowanie dla połączenia z bazą jakie masz na stronie, czyli jeśłi masz iso-8859-2 powinno być tak:

$db -> query(”SET NAMES ‘latin2′”);

rav

Write a comment