Calidad de los datos

Los códigos ISO 3166-1 y 3166-2, y dónde se vuelven confusos

ISO 3166-1 asigna un código estándar de dos letras a cada país reconocido, y es lo más parecido que tiene el software de ubicación a un identificador universal y estable de «qué país». DE para Alemania, JP para Japón, BR para Brasil. Se usa ampliamente precisamente porque es corto, estable e inequívoco una vez que conoces el estándar, y por eso nuestra consulta de códigos postales lo exige junto al código en lugar de un nombre de país en texto libre.

ISO 3166-2 amplía esto un nivel más abajo y asigna códigos a las subdivisiones dentro de un país (estados, provincias, regiones), según cómo se organice cada país. Un estado de EE. UU., una provincia de Canadá y una prefectura de Japón se representan todos así, cada uno como un código que combina el prefijo del país con un identificador de subdivisión. Esto es útil siempre que necesites un identificador estable de «qué región dentro de un país» que no dependa de hacer coincidir nombres en texto libre, que pueden escribirse, abreviarse o traducirse de forma distinta según la fuente de datos.

La confusión suele aparecer en unos pocos lugares predecibles. Los nombres de país en texto libre generan los desajustes más evidentes, ya que «United States», «USA», «U.S.» y «America» significan lo mismo para una persona, pero no automáticamente para un código que espera una coincidencia exacta de cadena, que es justo la ambigüedad que el código de dos letras existe para eliminar. Las estructuras de subdivisión también varían enormemente entre países: algunos se dividen limpiamente en un número reducido de estados o provincias, mientras que otros usan varios niveles administrativos, y hacer corresponder etiquetas visibles para el usuario como «estado», «provincia» o «condado» con códigos ISO 3166-2 no es un ejercicio de uno a uno en todos los países.

Otra fuente habitual de confusión es mezclar el dominio de nivel superior de un país con su código ISO. Coinciden con frecuencia, .de y DE, pero no siempre, y tratar el sufijo de un dominio como sustituto fiable del código de país acabará dando un resultado erróneo en las excepciones.

La recomendación práctica es almacenar y transmitir códigos ISO 3166-1 en lugar de nombres de país en texto libre siempre que tu sistema se comunique con otro sistema, incluido el nuestro, y usar códigos ISO 3166-2 para las subdivisiones siempre que necesites un identificador estable en lugar de una etiqueta de visualización. Reserva los nombres legibles para lo que tus usuarios ven realmente en pantalla y mantén los códigos por debajo para todo lo que deba coincidir de forma fiable.

Nuestra consulta de códigos postales recibe un código de país ISO 3166-1 alfa-2 junto al propio código postal, precisamente para que la solicitud sea inequívoca sin importar cómo se escriba de otro modo el nombre de un país.