UTF-8 datu sortēšanas problēma ar JavaScript

Jānis Rubļevskis (koko) // 2011. gada 9. septembrī, 9:04 // #Datori // 2 komentāri 

Vakar saskāros ar visai nepatīkamu problēmu - javaskripts pats izdomā, kā defaultā sortēt utf-īgus datus. Piemēram, man sanāca tā:

Ānis, Anis, Krāns
sakārtojas secībā:
Anis, Krāns, Ānis
Pa lielam ierobežotā laika dēļ problēmu neatrisināju pilnībā, bet ir daļējs risinājums. Tā vietā, lai izmantotu return (a < b); paņēmienu, ķēros pie return a.localeCompare(b); variantu.

Rezultāts sekojošs:

1) Pirmkārt, strādās ar esošajiem lietotāja sistēmas valodas iestatījumiem. Respektīvi, ja būs iesetota krievu valoda, tad kārtos pa savam, ja būs iesetota latviešu valoda, tad kārtos pa savam.
2) Pie pareiziem valodas iestatījumiem sistēmā Firefox un Ēzelītis rādīs pareizi, bet webkitīgie browseri (Chrome[ium], Safari) var parādīt arī nepareizi (runa konkrētajā gadījumā ir tieši par latviešu valodu). Tas esot tāpēc, ka JavaScript specifikācijā šis process neesot viennozīmīgi un nepārprotami aprakstīts.

Izskatās, ka vislabākais variants tomēr uz šo brīdi ir kārtot datus servera pusē. Zec saks ēss, bet neko nevar padarīt.

Otrs variants būtu izmantot javaskriptīgu usort metodi, bet jārēķinās, ka visu kārtošanas mehānismu jāievada ar rociņu un šis variants nebūs pats ātrākais.

P.S. Ja kāds kaut ko nesaprata, tad raksts nav domāts jums, bet gan gīkainajām cipargalvām :)

Komentāri

Šito risinājumu skatījies? stackoverflow.com/questions/

Lēnāks jau būs, bet vismaz vari norādīt pats savu alfabētu.

Aha... Šitas ir līdzīgs tam usort variantam, bet no programmēšanas viedokļa laikam sanāk elementārāks. Paldies!

Paud savu subjektīvo viedokli:

Visi lauki (izņemot interneta vietni) aizpildāmi obligāti!
E-pasts publiski netiks parādīts.
Zinot vairākumu, komentāros tagi netiek atrādīti kā tagi. Linki automātiski pārveidosies par spiežamiem (cerams).
Bloga īpašnieks patur tiesības ļaunus komentārus dzēst vai pārveidot cilvēkiem patīkamākā formā, bet tajā pašā laikā neatbild par komentāru saturu.