What are characters on letters called ACae

IDN - Internationalized Domain Names

ACE string

There were basically two different ways of introducing IDN. The first was that adjustments in the DNS would make Unicode characters usable out of the box. But this intervention was too drastic. So the decision was made for the second option, to define an algorithm for converting a Unicode string into a valid ASCII domain name. This ACE string (ACE stands for ASCII Compatible Encoding) is then entered in the DNS. Since the introduction of IDN, the entry in the DNS is no longer identical to the domain name for the first time.

Name Preparation, Punycode

In order for a Unicode string to be converted into an ACE string, certain requirements must be met. This is ensured by the "Nameprep" procedure. It checks that there are no illegal characters. Umlauts that are composed of two characters must be replaced by one, e.g. a + ¨ = Ä. This process is called "normalization". Furthermore, Latin capital letters are always converted into lower case letters, which is called "case mapping" or "case folding".

If the string contains non-ASCII characters after the "Name Preparation" has taken place, the system identifies this string with the prefix xn--. Punycode takes the non-ASCII characters from the actual domain name, notes the position of these characters and appends them in coded form at the end, separated by another hyphen.

An example


The domain name and the DNS entry are two different things with IDN.

books.ch is the domain name,
is the ACE string and is entered in the DNS.

For technical reasons, the character string resulting from the algorithmic processing is a few digits longer than the domain name itself. The domain name "www.buecher.ch" is 7 digits long. However, the ACE string is 13 characters long.

books.ch = Domain name: must be at least 3 characters long,
xn--bcher-kva.ch = DNS entry: may be a maximum of 63 characters long.

IETF standards
  • RFC 3492 Encoding Scheme (Punycode)
  • RFC 5890 IDNA (Internationalized Domain Names for Applications): Framework
  • RFC 5891 IDNA: Protocol
  • RFC 5892 IDNA: Unicode Code Points
  • RFC 5893 IDNA: Right-to-Left Scripts
  • RFC 5894 IDNA: Background, Explanations, and Rationale