Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]polskie znaki w UTF-8 i funkcja natcasesort
Forum PHP.pl > Forum > Przedszkole
micz84
Mam taki problem chcę posortować tablicę asocjacyjną z kluczami z polskimi znakami. Używam do tego funkcji natcasesort i polskie znaki są na końcu po "z" sad.gif.

Nie wiem czy to wina bazy (kodowanie utf8_polish_ci), bo w bazię np. "ą" jest jako "Ä"…, strona wyświetla się poprawnie tylko sortowanie nie działa. Jaka może być tego przyczyna??
jasin
spróbuj ustawić locale (przed użyciem funkcji sortującej:

  1. setlocale(LC_ALL, 'pl_PL.UTF8');


tylko, nie wiem czy zadziała to z tą funkcją. Na ogół jest używana z

  1. ksort($moja_tablica, SORT_LOCALE_STRING);


i trzeba pamietać by dać po tym
  1. setlocale(LC_ALL, NULL);

ponieważ count może źle działać.

ja osobiście preferuję by system porównań dla połączenie był utf8_unicode_ci, i później po połączeniu z bazą danych w kodzie php dać

  1. $db->query("SET NAMES 'utf8'");
micz84
setlocale miałem ustawione, ksort i flaga SORT_LOCALE_STRING pomogły. Wielkie dzięki smile.gif.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.