przeszukałem chyba wszystkie polskie oraz zagraniczne fora i grupy dyskusyjne. Niestety nie znalazłem rozwiązania problemu. Wszędzie piszą o tym samym, co w moim przypadku nie rozwiązuje problemu.
Mam stronę w kodowaniu utf-8 oraz bazę w takim samym. Niby w bazie jest wszystko na utf8:
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_results utf8
character_set_server utf8
character_set_system utf8
Polecenia, które wywołuję:
mysql_query("SET CHARACTER SET utf8", $s); mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'", $s); mysql_query("SET character_set_client=utf8", $s); mysql_query("SET character_set_connection=utf8", $s); mysql_query("SET character_set_results=utf8", $s); mysql_query("ALTER DATABASE bazadanych COLLATE utf8_general_ci", $s); mysql_query("ALTER TABLE tablica CONVERT TO CHARACTER SET 'utf8'", $s);
Wiem, że za dużo zbyt ich, ale już wszyskiego próbuję. Po wywołaniu:
SELECT * FROM tablica ORDER BY 'name' ASC
Otrzymuję listę z takim dziwnym sortowaniem:
...
Le....
Że....
Lu...
Ła...
Śc...
Me...
...
Wygląda na to, że przy sortowaniu zamiast znaku w UTF8 bierze pod uwagę tylko jego "pierwszy znak składowy", czyli zamiast Ż - > Ĺť -> "Ĺ".
Podczas przeglądania bazy w phpMyAdmin oraz na stronie nie wyświetla żadnych krzaków. Bazę importuję z pliku przy kodowaniu utf. Oprócz tego przy tworzeniu każdej tablicy mam dopisane:
CHARSET=utf8 COLLATE=utf8_general_ci
Nadal nie działa poprawnie. Bardzo proszę o pomoc. Całą noc nad tym przesiedziałem i już nie mam więcej sił.