ISO 3166-1 weist jedem anerkannten Land einen standardisierten Code aus zwei Buchstaben zu und ist das, was einer universellen, stabilen Kennung für „welches Land“ in Standortsoftware am nächsten kommt. DE für Deutschland, JP für Japan, BR für Brasilien. Der Standard ist gerade deshalb so verbreitet, weil er kurz, stabil und eindeutig ist, sobald man ihn kennt, und genau deshalb verlangt unsere Postleitzahlabfrage ihn zusammen mit einem Code statt eines frei geschriebenen Ländernamens.
ISO 3166-2 erweitert das um eine Ebene nach unten und weist Untergliederungen innerhalb eines Landes Codes zu, also Bundesstaaten, Provinzen oder Regionen, je nachdem, wie sich das jeweilige Land organisiert. Ein US-Bundesstaat, eine kanadische Provinz und eine japanische Präfektur werden alle auf diese Weise dargestellt, jeweils als Code, der das Länderpräfix mit einer Kennung der Untergliederung kombiniert. Das ist überall nützlich, wo Sie eine stabile Kennung für „welche Region innerhalb eines Landes“ brauchen, die nicht davon abhängt, frei geschriebene Namen abzugleichen, die in verschiedenen Datenquellen unterschiedlich geschrieben, abgekürzt oder übersetzt sein können.
Verwirrung zeigt sich meist an einigen vorhersehbaren Stellen. Frei geschriebene Ländernamen führen zu den offensichtlichsten Abweichungen, denn „United States“, „USA“, „U.S.“ und „America“ bedeuten für einen Menschen dasselbe, aber nicht automatisch für Code, der einen exakten Zeichenkettenabgleich erwartet, und genau diese Mehrdeutigkeit soll der Code aus zwei Buchstaben beseitigen. Auch die Struktur der Untergliederungen unterscheidet sich von Land zu Land enorm: Manche Länder teilen sich sauber in eine kleine Zahl von Bundesstaaten oder Provinzen, andere verwenden mehrere Verwaltungsebenen, und die Zuordnung von für Nutzer sichtbaren Bezeichnungen wie „Bundesstaat“, „Provinz“ oder „Landkreis“ zu ISO-3166-2-Codes ist nicht in jedem Land eins zu eins möglich.
Eine weitere häufige Quelle der Verwirrung ist die Verwechslung der Top-Level-Domain eines Landes mit seinem ISO-Code. Beide stimmen häufig überein, .de und DE, aber nicht immer, und wer eine Domainendung als verlässlichen Ersatz für den Ländercode behandelt, erhält bei den Ausnahmen irgendwann ein falsches Ergebnis.
Die praktische Empfehlung lautet: Speichern und übergeben Sie ISO-3166-1-Codes statt frei geschriebener Ländernamen überall dort, wo Ihr System mit einem anderen System kommuniziert, auch mit unserem, und verwenden Sie ISO-3166-2-Codes für Untergliederungen, wann immer Sie eine stabile Kennung statt einer Anzeigebezeichnung brauchen. Behalten Sie lesbare Namen für das vor, was Ihre Nutzer tatsächlich auf dem Bildschirm sehen, und nutzen Sie darunter die Codes für alles, was zuverlässig übereinstimmen muss.
Unsere Postleitzahlabfrage nimmt neben der Postleitzahl selbst einen Ländercode nach ISO 3166-1 Alpha-2 entgegen, gerade damit die Anfrage eindeutig ist, unabhängig davon, wie der Name eines Landes sonst geschrieben werden könnte.
Eine Adresse in einem gut kartierten Stadtzentrum sagt Ihnen fast nichts darüber, wie Ihr System mit einer ländlichen Zustellroute, einer umstrittenen Grenze oder einer Anfrage in Polnähe umgeht. Testen Sie die schwierigen Fälle gezielt.
Nicht jeder Datensatz mit öffentlich wirkenden Standortinformationen darf rechtlich in einem kostenpflichtigen Produkt verwendet werden. Die eigentliche Grenze setzen oft die Lizenzbedingungen, nicht die technische Verfügbarkeit.
Wenn sich eine Anfrage wirklich nicht zuverlässig auflösen lässt, ist es die bessere Antwort, nichts zurückzugeben, statt eine als Tatsache verkleidete Vermutung. Hier ist die Begründung für diese Entscheidung.