ICANN, the Internet Corporation for Assigned Names and Numbers, has approved the first four country-code domain names written in non-Latin script.
All existing top-level domain names are written using the 'Latin' alphabet, the 26 letters from A to Z. That system is fine for internet users in English-speaking countries, but not for those countries for which the official language is written using other scripts, such as the Russian Cyrillic characters, Arabic script or Chinese pictograms. European countries such as Austria or Spain also have problems with the Latin alphabet, as they use accented characters to spell their official name in their own language.
There are several kinds of top-level domains (TLDs): generic ones (gTLDs) such as .com, .net or .org, special-purpose ones such as .aero or .museum, and the two-letter country code domains (ccTLDs) such as .fr (France) or .uk (United Kingdom).
The first four countries to be allowed to write their country-code top-level domain names in their own script are Egypt, Russia, Saudi Arabia and the United Arab Emirates. They will retain their existing Latin-alphabet ccTLDs such as .ru (Russia).
Other countries awaiting approval for ccTLDs in their own scripts include China, Jordan, Sri Lanka and Thailand.
For some years, ICANN has been working on an enhancement to the DNS (Domain Name System) to allow internationalised domain names (IDNs), or domain names written in non-Latin scripts. There are a number of technical challenges - most notably that the DNS infrastructure is designed only to handle domain names written with the Latin alphabet.
The IDNs, regardless of the script or language they represent, will all be stored as a series of Latin characters beginning xn-- followed by an encoded sequence representing the name. Thus, the IDN for Russia will be stored as xn--p1ai while that for Egypt will be stored as xn--wgbh1c.
It will be left to the browser or other client software to convert the underlying TLD into the appropriate script for display. ICANN hosts a test page to check whether a browser already support this function.