Dans le tableau des éléments de classement Unicode par défaut vous pouvez voir ces deux entrées :
002C ; [*0220.0020.0002] # COMMA
002D ; [*020D.0020.0002] # HYPHEN-MINUS
Ici, le poids principal de la virgule est supérieur au poids principal du trait d'union-moins, donc le trait d'union-moins trie avant la virgule.
Notez qu'il s'agit de l'ordre de tri attendu selon l'algorithme de classement Unicode avec les pondérations par défaut. Si vous vous attendez à un ordre de tri par valeurs d'octets ASCII, vous obtenez un ordre différent. Et il y a d'autres commandes valides. Mais si la locale est nommée "en_US.UTF-8" (ou "en_US.utf8", même chose), alors vous vous attendez probablement à l'ordre Unicode. Mais c'est entre vous et votre fournisseur de système d'exploitation.