IDN support in .nz

The registration of IDNs (internationalised domain names) with macronised vowels which feature in the Māori language, an official language under New Zealand law, has been permitted in the .nz name space since July 2010.

Domain names are allowed to consist of 26 basic English (Latin) alphabet characters a-z, digits, the '-' hyphen, and characters ā, ē, ī, ō and ū.

In addition to the extra characters for registrations the second level māori.nz (with the ā macron) is provided as a mirror of the maori.nz 2LD using the DNS feature called DNAME. This ensures that all existing and future names registered under maori.nz are duplicated in the DNS under māori.nz.

.nz Latin

The following charcter table is called .NZ LATIN and contains the characters used by NZRS for the registration of .NZ domains represented using the Latin script.

The table lists the Unicode code points in the U+XXXX format:

Code point Character Example
U+002D HYPEN-MINUS -
U+0030 DIGIT ZERO 0
U+0031 DIGIT ONE 1
U+0032 DIGIT TWO 2
U+0033 DIGIT THREE 3
U+0034 DIGIT FOUR 4
U+0035 DIGIT FIVE 5
U+0036 DIGIT SIX 6
U+0037 DIGIT SEVEN 7
U+0038 DIGIT EIGHT 8
U+0039 DIGIT NINE 9
U+0061 LATIN SMALL LETTER A a
U+0062 LATIN SMALL LETTER B b
U+0063 LATIN SMALL LETTER C c
U+0064 LATIN SMALL LETTER D d
U+0065 LATIN SMALL LETTER E e
U+0066 LATIN SMALL LETTER F f
U+0067 LATIN SMALL LETTER G g
U+0068 LATIN SMALL LETTER H h
U+0069 LATIN SMALL LETTER I i
U+006A LATIN SMALL LETTER J j
U+006B LATIN SMALL LETTER K k
U+006C LATIN SMALL LETTER L l
U+006D LATIN SMALL LETTER M m
U+006E LATIN SMALL LETTER N n
U+006F LATIN SMALL LETTER O o
U+0070 LATIN SMALL LETTER P p
U+0071 LATIN SMALL LETTER Q q
U+0072 LATIN SMALL LETTER R r
U+0073 LATIN SMALL LETTER S s
U+0074 LATIN SMALL LETTER T t
U+0075 LATIN SMALL LETTER U u
U+0076 LATIN SMALL LETTER V v
U+0077 LATIN SMALL LETTER W w
U+0078 LATIN SMALL LETTER X x
U+0079 LATIN SMALL LETTER Y y
U+007A LATIN SMALL LETTER Z z
U+0101 LATIN SMALL LETTER A WITH MACRON ā
U+0113 LATIN SMALL LETTER E WITH MACRON ē
U+012B LATIN SMALL LETTER I WITH MACRON ī
U+014D LATIN SMALL LETTER O WITH MACRON ō
U+016B LATIN SMALL LETTER U WITH MACRON ū

Terminology and standards

The .nz IDN implementation must be compliant with the technical requirements described in various RFCs (3454, 3490, 3491, and 3492) collectively called the "IDN standards".

There are a lot of terms and definitions in use related to IDNs mentioned in the RFCs and other IDN documents. Listed below are some brief definitions of the common terms. Refer to the RFCs for the comprehensive definitions.

The external-form or display form of an IDN is called U-label and the internal-form or stored form is called A-label.

The U-label string is the Native Script name in Unicode. This is normally the display format of the name and is how the user enters the name in a web browser. This name is also known as the IDNA-valid string.

The A-label string is the ASCII-Compatible Encoding (ACE) form of the U-label. This name is also known as the "punycode" name. Every A-label will begin with the IDNA ACE prefix, "xn--" followed by a string that is a valid output of the Punycode algorithm and hence a maximum of 59 ASCII characters in length. The prefix and string together must conform to all requirements for a label that can be stored in the DNS including conformance to the rules for the preferred form described in RFC 1034, RFC 1035, and RFC 1123. A string meeting the above requirements is still not an A-label unless it can be decoded into a U-label.

Conversions between U-labels and A-labels are performed according to the "Punycode"specification [RFC3492], adding or removing the ACE prefix as needed.

.māori.nz 2LD and DNS

All names registered under .maori.nz are duplicated in the DNS and available under a 2LD IDN variant of .maori.nz (.xn--mori-qsa.nz)

The duplication is achieved using a DNAME in the .nz zone files.

The maori 2LD will remain as an ASCII value in the SRS database. Domain names in the SRS that end in .maori.nz will have two variants in the DNS, one will be the for the ASCII version of the name .maori.nz and the other will be for the IDN version of the name .māori.nz represented as punycode: .xn--mori-qsa.nz.

Note

The DomainName parameter submitted to the SRS must contain the .maori.nz label and NOT the punycode version .xn--mori-qsa.nz or the unicode version māori.nz

IDN support via SRS

Two IDN-related fields exist in the DomainCreate request to allow for IDN registration in SRS:

  • DomainNameUnicode field
  • DomainNameLanguage field

When creating a non-IDN domain both fields are optional, however if a punycode encoded domain name is provided in the DomainName the DomainNameUnicode field must be provided holding the same domain name as the punycode encoded version. This is to verify that the U-label version and the A-label version are consistent, for example:

<NZSRSRequest VerMajor="1" VerMinor="0" RegistrarId="90">
  <DomainCreate ActionId="SomeUniqueID X1234" DomainName="xn--domain-with-mcron-z5b.co.nz" DomainNameLanguage=".NZ LATIN" DomainNameUnicode="domain-with-mācron.co.nz" Term="24">
    <RegistrantContact Name="Name" Email="testdomain@test.net.nz">
      <PostalAddress Address1="Address1" City="testCity" CountryCode="NZ"/>
      <Phone CountryCode="64" AreaCode="4" LocalNumber="testdomain Phone"/>
    </RegistrantContact>
    <AuditText>create new domain</AuditText>
  </DomainCreate>
</NZSRSRequest>

When the verification of both versions is successful, meaning both versions represent the same domain name, only the punycode encoded version [A-label] is stored in the SRS.

The DomainNameLanguage attribute allows the SRS to be extended by further language tables with different character sets if necessary.

IDN support via EPP

To register an IDN via EPP you simply send the associated Punycode for the domain as part of your domain:create transaction, for example:

<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <create>
      <domain:create xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>xn--domain-with-mcron-z5b.co.nz</domain:name>
        <domain:period unit="m">24</domain:period>
        <domain:registrant>945-h-0</domain:registrant>
        <domain:contact type="admin">945-h-0</domain:contact>
        <domain:contact type="tech">945-h-0</domain:contact>
        <domain:authInfo>
          <domain:pw></domain:pw>
        </domain:authInfo>
      </domain:create>
    </create>
    <clTRID>createdomain-xn--domain-with-mcron-z5b.co.nz</clTRID>
  </command>
</epp>

IDN support via Whois Protocol

The whois server accepts domain names in both ASCII [A-label] and unicode [U-label] format. The whois server translates unicode names into A-labels and sends an internal language transaction to the SRS with the A-label as the domain name.

$ whois domain-with-mācron.co.nz
% NZRS Limited
% Users confirm on submission their agreement to all published Terms
%
version: 5.00
query_datetime: 2015-05-07T15:47:42+12:00
domain_name_idn: domain-with-mācron.co.nz
domain_name_language: .NZ LATIN
domain_name_hex: domain-with-m<U+0101>cron.co.nz
domain_name: xn--domain-with-mcron-z5b.co.nz
query_status: 200 Active
domain_dateregistered: 2015-05-07T11:40:52+12:00
domain_datebilleduntil: 2017-05-07T11:40:52+12:00
domain_datelastmodified: 2015-05-07T11:40:52+12:00
domain_delegaterequested: yes
domain_signed: no

The DomainNameUnicode, DomainNameUnicodeHex and DomainNameLanguage are included in the output of the Whois server for IDNs. For non IDN's these fields will not be returned.

An excpetion is the 2LD maori.nz. A query for a maori.nz domain name will return the DomainNameUnicode with the 2LD as .māori.nz