Qualité des données

Les codes ISO 3166-1 et 3166-2, et là où ils prêtent à confusion

La norme ISO 3166-1 attribue un code standard à deux lettres à chaque pays reconnu, et c'est ce qui se rapproche le plus, pour les logiciels de localisation, d'un identifiant universel et stable de « quel pays ». DE pour l'Allemagne, JP pour le Japon, BR pour le Brésil. Elle est largement utilisée précisément parce que ce code est court, stable et sans ambiguïté une fois la norme connue, et c'est exactement pour cette raison que notre recherche de code postal l'exige avec le code postal plutôt qu'un nom de pays en texte libre.

La norme ISO 3166-2 descend d'un niveau et attribue des codes aux subdivisions d'un pays (États, provinces, régions), selon la façon dont ce pays est organisé. Un État américain, une province canadienne et une préfecture japonaise sont tous représentés ainsi, chacun par un code qui combine le préfixe du pays et un identifiant de subdivision. C'est utile partout où vous avez besoin d'un identifiant stable de « quelle région dans un pays » qui ne dépende pas de la correspondance de noms en texte libre, lesquels peuvent être orthographiés, abrégés ou traduits différemment selon les sources de données.

La confusion apparaît généralement à quelques endroits prévisibles. Les noms de pays en texte libre créent les incohérences les plus évidentes, puisque « United States », « USA », « U.S. » et « America » signifient la même chose pour une personne, mais pas automatiquement pour un code qui attend une correspondance exacte de chaîne, et c'est précisément cette ambiguïté que le code à deux lettres existe pour supprimer. Les structures de subdivision varient aussi énormément d'un pays à l'autre : certains se divisent proprement en un petit nombre d'États ou de provinces, tandis que d'autres utilisent plusieurs niveaux administratifs, et faire correspondre des libellés destinés aux utilisateurs comme « État », « province » ou « comté » aux codes ISO 3166-2 n'est pas un exercice de correspondance univoque pour tous les pays.

Une autre source courante de confusion consiste à assimiler le domaine de premier niveau d'un pays à son code ISO. Ils correspondent souvent (.de et DE), mais pas toujours, et traiter un suffixe de domaine comme un substitut fiable du code pays finira par produire un résultat erroné pour les exceptions.

Le conseil pratique est de stocker et de transmettre des codes ISO 3166-1 plutôt que des noms de pays en texte libre partout où votre système communique avec un autre système, y compris le nôtre, et d'utiliser les codes ISO 3166-2 pour les subdivisions chaque fois que vous avez besoin d'un identifiant stable plutôt que d'un libellé d'affichage. Réservez les noms lisibles à ce que vos utilisateurs voient réellement à l'écran, et conservez les codes en arrière-plan pour tout ce qui doit correspondre de façon fiable.

Notre recherche de code postal prend un code pays ISO 3166-1 alpha-2 en plus du code postal lui-même, précisément pour que la requête soit sans ambiguïté, quelle que soit la façon dont le nom d'un pays pourrait par ailleurs être écrit.