[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [idn] Newbie's questions implementing the [IDNA]
Seungho Lee <shlee@netpia.com> wrote:
> What kind of sequence of code points can be the input of ToUnicode
> Operation? Only punycoded one or all the other ones?
Any sequence of Unicode code points can be the input of ToUnicode. The
first paragraph of the ToUnicode section (4.2) says:
The ToUnicode operation takes a sequence of Unicode code points that
make up one label and returns a sequence of Unicode code points.
If the input sequence is a label in ACE form, then the result is
an equivalent internationalized label that is not in ACE form,
otherwise the original sequence is returned unaltered.
> And if all the other ones are permitted, isn't it that the [NAMEPREP]
> can't convert it to punycoded one?
Right, Nameprep does not perform Punycode encoding.
> From Step3, it is solid that the input is the ACE code points starting
> with ACE prefix.
Step 3 says "Verify that the sequence begins with the ACE prefix."
If the sequence does not in fact begin with the ACE prefix, then the
verification fails. The second paragraph of the ToUnicode section says:
ToUnicode never fails. If any step fails, then the original input
sequence is returned immediately in that step.
> What is the return value of DNS?
It depends on the query. You can ask the DNS for A records, which
contain IP addresses, or PTR records, which contain domain names, or MX
records, which contain mail exchanger information, or NS records, which
contain name server information, and so on.
> I came to think that the ToUnicode operation is not included in the
> major flow of 'sending query and receiving the return values'.
ToUnicode is useful for displaying names to users. That's the only
purpose mentioned in the IDNA spec for ToUnicode. The "major flow"
you have in mind does not involve displaying names to users, right?
Therefore ToUnicode is not useful there.
> And where exactly the ToUnicode operation should be done?
Anywhere between where the application receives the domain name and
where the application displays the domain name to the user. Domain
names might be recieved in message headers, or in HTML markup, for
example.
AMC