Adam M. Costello Created 2026-10-13 Updated 2026-11-05
Adam M. Costello authored the Punycode specification in RFC 3492, which describes a reversible encoding of Unicode strings using the basic ASCII repertoire for internationalized domain-name applications. The encoding preserves basic code points literally and represents additional ones through the Bootstring algorithm.[ref] He is also listed as an author and former editor of the PNG specification.[ref]
Punycode 2026-11-05
Punycode encodes a sequence of Unicode code points using a restricted basic-character alphabet. It preserves basic ASCII characters and represents the remaining code points by an adaptive generalized integer encoding. RFC3492 defines the algorithm; it is one component used by internationalized-domain-name protocols, rather than a complete definition of which names those protocols accept.[ref]
For example, the Punycode payload for bücher is bcher-kva. In the domain-name protocol, the ASCII-compatible label is written xn--bcher-kva; the prefix belongs to the protocol's label convention, not the basic Punycode payload. Encoding is reversible representation, not encryption, identity verification or protection against lookalike names.