Order ÆØÅ

Tags:    php

Ja, endnu et spørgsmål herinde om ÆØÅ:

I min DB omskrives ÆØÅ til æ ø og å.

No harm done dér, outputtet ser fint ud osv., men når jeg skal sortere alfabetisk ryger de tre bogstaver øverst på listen, fordi de starter med &-tegnet.

Hvordan får man den rigtige rækkefølge?



4 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Du skal nok overveje at bruge UTF-8 som charset, så får du ikke de problemer.



Er æøå ikke inkluderet i de 255 normale ascii karekterer?
Gør sådan, ændre æ til fx za, og ø til zb og å til zc, når til skriver til databasen, og når de så skal vises igen så bruge str_replace til at få fa za til æ osv.



Det kan godt være at de er inkluderet, men det er ikke optimalt at gå så langt udenom.
UTF-8 er efterhånden standarden at bruge og bruger man denne generelt, får man ikke problemer med at skulle finde dem med str_replace og alt det der. Ligeledes vil æ, ø og å kunne listes i alfabetisk rækkefølge, som det bogstav de nu en gang er.
Jeg ser alt for mange eksempler hvor det hele kunne gøres mere effektivt, hvis bare man havde valgt at bruge UTF istedet for Unicode eller ASCII. I Linux er standard karaktersættet for eksempel UTF-8, hvilket betyder at du vil kunne bruge specielle tegn lige meget hvad og en tekstfil vil også altid gemmes som UTF, medmindre andet er valgt. I Windows bruges for det meste Unicode som standard, hvilket jeg ser som en kæmpe fejl.



Nu har jeg endelig nosset mig sammen til at løse problemet. Istedet for at benytte htmlentities, bruger jeg nu htmlspecialcharacters, så det kun er &, ", ', < og >, der laves om og ikke andre tegn som f.eks. ÆØÅ.

Bruger stadig ISO som charset og det er altså ikke dér problemet ligger. Det fungerer glimrende.



t