[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [idn] Document Status?



In case my recent exchange with JFC has left anyone with the impression
that IDNA is complex, here is IDNA in a nutshell:

  * Every ASCII domain label is an internationalized label, but some
    internationalized labels are not ASCII.

  * Some ASCII labels are unsuitable for display to users.  They are
    called ACE labels.

  * For every internationalized label X, there is an equivalent
    ASCII label ToASCII(X), and there is an equivalent non-ACE label
    ToUnicode(X).  When you need the ASCII form (for using protocols
    that expect ASCII) you can use ToASCII to obtain it.  When you need
    the non-ACE form (for display to users) you can use ToUnicode to
    obtain it.

  * Two internationalized labels X and Y are defined to be equivalent
    iff ToASCII(X) and ToASCII(Y) match case-insensitively.

That is the essence of IDNA.  That much can be understood without any
need to know what ToASCII, ToUnicode, and ACE really are.

By the way, I made a slight error in my previous message:

> Notice that ToUnicode(ToASCII(X)) is not always X, it is Nameprep(X)
> (which is equivalent to X).

For any internationalized label X, ToUnicode(ToASCII(X)) is indeed
equivalent to X, but it's not necessarily Nameprep(X).  It is
Nameprep(X) if X is non-ASCII.

AMC