On this page
IDNs let domain labels be displayed in Unicode scripts while remaining compatible with the ASCII DNS protocol. The ASCII-compatible form is the A-label, usually beginning with xn--; the Unicode presentation is the U-label.
One label, two useful forms
An internationalized domain name can have a user-facing Unicode representation and an ASCII-compatible DNS representation. Those are commonly discussed as the U-label and A-label.
A reference interface should make an IDN TLD discoverable from its native-script form and its xn-- A-label.
Where Punycode fits
Punycode is the encoding used by IDNA to represent non-ASCII labels in the ASCII label form. A-labels are recognizable by the xn-- prefix, but the prefix alone is not a substitute for proper IDNA processing and validation.
Canonical URLs
For static site routing, an ASCII A-label is a stable canonical path component. The page can then render the Unicode label prominently for humans while also exposing the A-label as technical metadata.
IDN tables are separate
IANA's IDN Practices Repository contains registry-published IDN tables. Those tables describe registration practices for labels beneath a TLD; they should not be misread as a translation or definition of the TLD string itself.
Primary sources
These are the primary references this guide is designed around. When implementation data disagrees with editorial copy, the primary source wins.