u bazi ti se nalazi SMECE !!! to je cesta pocetnicka greska koja se kasnije jako tesko ispravlja. Pisano je o tome vise puta na ovom istom forumu.
Kada ti u mysql polje koje je sa utf enkodingom upises utf8 karakter od 2 bajta (na primer slovo dj) a pri tome ti je enkoding izmedju klijenta i servera LATIN1 (posto na primer u php-u nisi stavio da ti je enkoding utf8 pa je ostao default latin1) onda ti klijent taj dvobajtni utf8 karakter posalje mysql-u kao 2 jednobajtna latin1 karaktera koje mysql snimi kao 2 trobajtna utf8 karaktera (kuku i kvaku). dakle sada u mysql tabeli imas smece.
sta se dalje desava, kada ti sada, isto tako pogresno, procitas kroz latin1 konekciju sadrzaj tog polja, mysql ti, posto koristis latin1, iskonvertuje ta dva trobajtna utf8 karaktera u 2 jednobajtna latin1 karaktera, tvoj klijent to dobije kao dva karaktera i posalje tvom web browseru koji to procita kao 1 utf8 karakter zato sto si mu forsirao enkoding na utf8 u zaglavlju html-a - i ti to prividno vidis kao korektan podatak..
ako sada uzmes i procitas te podatke validno (kao sto to uradi phpmyadmin) tako sto stvarno prikazes ono sto dobijes iz baze, ti vidis da si dobio kuku i kvaku, tj, smece.
ispravljanje ovog smeca je za*ban posao, generalno mozes da konvertujes ta pogresna polja iz utf8 u latin1, kako bi od trobajtne kuke dobio 1bajtnu kuku te da 2bajtni utf8 karakter sada uzima 2 bajta u tom polju (2 latin1 karaktera). Onda taj latin1 konvertujes u binarni enkoding pa onda iz binarnog probas da vratis u utf8. U 99% slucajeva ce ovo ocistiti smece iz baze i vratiti validne podatke u ta polja. Zatim moras da popravis tvoju aplikaciju koja je napravila svo to smece tako sto ces na pocetku konekcije da definises enkoding (utf8) (potrazi forum na "set names 'utf8'" za detalje).