Faire faire le boulot par des machines, c'est pouvoir exploiter des régularités. Mais nous nous attachons à nous différentier par de petites irrégularités (qui font aussi notre richesse), si on doit les respecter, ça va être au prix d'un code compliqué. Et si on se propose de les abandonner, on se fait hacher menu.
- W
Bonjour
A mon avis, le choix de l'algorithme dépend aussi de ce qu'on va trier. Ainsi, si au sein d'un programme on ne veut trier que des noms de pays, il n'est pas nécessaire que cet algorithme soit capable de traiter tous les mots d'un dictionnaire.
Pour prendre un exemple extrême, la conversion des noms de pays donnés en minuscules non accentuées donne le même résultat que la solution avec locale! Il faudrait peut-être vérifier que ça marche avec tous les pays: voir la norme ISO 3166:2020 pour les codes des pays https://www.iso.org/fr/iso-3166-country-codes.html et la liste des pays est ici: https://www.iso.org/obp/ui/fr/#iso:pubUB500001:en.
A noter que les règles de comparaison du Québec dont j'ai donné le lien, s'est poursuivi dans les règles internationales ISO. La norme en cours est la ISO/IEC 14651:2020. Mais elle coûte 187 FS...
https://www.iso.org/fr/standard/79392.html
On parle de tri avec des mots ayant des caractères accentués... et les noms de pays en sont un sous ensemble.
Ceci dit, le "principe" d'une locale est de respecter les coutumes régionales.
Ce qui n'empêche pas d'avoir des standards internationaux (histoire d'avoir des noms cohérents pour les aéroports).
Mais il ne faut peut être pas tout mélanger.
La documentation postgresql sur ce sujet me semble pas trop mal foutue.
- W
Partager