Nella Tabella degli elementi di confronto Unicode predefiniti puoi vedere queste due voci:
002C ; [*0220.0020.0002] # COMMA
002D ; [*020D.0020.0002] # HYPHEN-MINUS
Qui, il peso primario di COMMA è maggiore del peso primario di HYPHEN-MINUS, quindi HYPHEN-MINUS ordina prima di COMMA.
Si noti che questo è l'ordinamento previsto in base all'algoritmo di confronto Unicode con i pesi predefiniti. Se si prevede l'ordinamento in base ai valori dei byte ASCII, si ottiene un ordine diverso. E ci sono altri ordini validi. Ma se la locale è denominata "en_US.UTF-8" (o "en_US.utf8", stessa cosa), probabilmente ti aspetteresti l'ordine Unicode. Ma questo è tra te e il fornitore del tuo sistema operativo.