Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]polskie znaki w UTF-8 i funkcja natcasesort
micz84
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 4.10.2004
Skąd: Niemcz

Ostrzeżenie: (0%)
-----


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" (IMG:style_emoticons/default/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??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
jasin
post
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 32
Dołączył: 21.08.2008
Skąd: Toruń

Ostrzeżenie: (0%)
-----


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'");
Go to the top of the page
+Quote Post
micz84
post
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 4.10.2004
Skąd: Niemcz

Ostrzeżenie: (0%)
-----


setlocale miałem ustawione, ksort i flaga SORT_LOCALE_STRING pomogły. Wielkie dzięki (IMG:style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 04:38