> 17.1 | Sort Order for Phonebooks

> Due to the support of UCS2 for the <text> part of phonebook entries, the sort order for phonebook records follows the algorithm published as Unicode Technical Standard #10, "Unicode Collation Algorithm".
> A memory-optimized version of the proposed collation tables "[AllKeys]" from Unicode Technical Standard #10 is used in order to determine collation weights for Code points between 0000 and 06FF, and composed keys are used for Code points from ranges 0700 to 33FF, A000 to D7FF and E000 to FFFD. Code Points not referenced in these tables will be assigned a default collation weight with their unicode value as level 1 weight. Decomposition is not supported.
> Phonebook entries whose names contain only characters from the GSM07.07 default alphabet are converted internally into their UCS2 equivalents in order to achieve consistent sorting results.
> For the user, this means that:

> • | Punctuation marks and other non-alphabetical characters from the common latin-based character sets, and from the standard GSM character set, will be sorted before any alphabetical characters. The ordering in which these marks appear as compared to other non-alphabetical characters from the same group is determined by their collation weights and does not reflect their code values in the UCS2 or GSM alphabet tables above. Please refer to www.unicode.org for detail.

> • | Alphabetical characters from the common latin-based character sets, and from the standard GSM character set, will be sorted according to their underlying base characters, plus the collation weights of their accent signs.

> • | Only collation levels 1 and 2 are regarded, so sorting is not case-sensitive.

> Example: the european letters "Å" (GSM 0EH, UCS2 00C5h), "æ" (GSM 1DH, UCS2 00E6h), "ç" (GSM09h, UCS2 00E7h), "a" (GSM 61H, UCS2 0061h ) and "b" (GSM 62H, UCS2 0062h) will be sorted in order "a", "Å", "æ" "b","ç" although their numerical values in GSM and UCS2 suggest a different ordering.

> Reference(s)
> Unicode Technical Standard #10,"Unicode Collation Algorithm"