[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