Re: ToUnicode output can be longer than input

"Adam M. Costello" <[email protected]>
Newsgroups gmane.ietf.idn
Message-ID <[email protected]>
Edmon Chung <[email protected]> wrote:

> Right now, the ACE string provided is not valid because it contains
> characters beyond A-z, 0-9, -.

It is valid.  Some labels are ASCII and some are not.  Some labels are
ACE and some are not.  All four combinations are possible (ASCII ACE,
ASCII non-ACE, non-ASCII ACE, non-ASCII non-ACE).

An ACE label is formally defined as a label that ToUnicode would alter.
A (valid) internationalized label is formally defined as a label to
which ToASCII can be applied without failing.  It can be shown that all
ACE labels are (valid) internationalized labels.

> I think it would be better to find an example that is a valid Punycode
> string that when ToUnicode is performed will exceed the number of
> codepoints of the original.

The Punycode decoder cannot output more code points than it inputs.

If the input of ToUnicode is ASCII, then Nameprep will not be applied,
and therefore the output of ToUnicode cannot contain more code points
than the input.  It's Nameprep that can cause strings to grow, not the
Punycode decoder.

AMC
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.