Wie in Kodieren Punycode Domains
Konvertieren internationalized domain names (IDN) to Punycode ASCII representation for DNS resolution.
问题
You haben ein domain Name mit non-ASCII Zeichen (e.g., Bücher.com) und brauchen its Punycode form für DNS lookups.
Voraussetzungen
- Understanding of DNS
- Familiarity with Unicode
Schritte
-
1. Split the domain into labels
Separate the domain name at each dot. Punycode is applied per-label, not to the whole domain. The TLD and each subdomain label are processed independently.
EingabeBücher.com输出labels: ['Bücher', 'com'] -
2. Encode each non-ASCII label to Punycode
For each label containing non-ASCII characters, prefix the Punycode output with xn-- and append the encoded form. ASCII-only labels like 'com' remain unchanged. The encoding maps Unicode code points to a compact ASCII representation.
EingabeBücher输出xn--Bcher-kva -
3. Reassemble and verify
Join the encoded labels with dots. Use the result for DNS resolution. Most browsers and DNS libraries perform this conversion automatically, but APIs and logs often show the Punycode form.
Eingabexn--Bcher-kva.com输出resolves to the same server as Bücher.com
Erwartetes Ergebnis
Ein ASCII-nur domain Name (ACE form) das DNS resolvers kann Abfrage, equivalent in der original IDN.
Häufige Fehler
- Encoding the entire domain as one label
- Split on dots first. Only labels with non-ASCII characters get the xn-- prefix.
- Case is lost in conversion
- Punycode preserves the case of the first character. Use a standards-compliant encoder to handle case correctly.
Troubleshooting指引
- If DNS lookup fails, verify the xn-- prefix is present and lowercase.
- Some older resolvers do not support IDN. Use the Punycode form directly in those cases.
Sicherheitsgrenzen
- Punycode enables homograph attacks (e.g., аpple.com using Cyrillic а). Always display the Unicode form to users and warn about mixed-script domains.