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

[idn] AMC-ACE-Z has a name: Punycode

AMC-ACE-Z, which has always been a working name, now has a real name:
Punycode.  I just submitted draft-ietf-idn-punycode-00.txt.  It can be
obtained now from:


Why "Punycode"?  It rhymes with Unicode and is intended to encode
Unicode strings.  It is "puny" in three senses:  The repertoire of
characters used in the encoded strings is small, the encoded strings are
short, and the implementation is small.

No changes have been made to the algorithm.  Here is a summary of
changes since the previous draft:

  * AMC-ACE-Z has been renamed to Punycode.

  * Usage of the term "ACE" has been made consistent with the latest
    IDNA draft.

  * An incorrect claim regarding the conditions under which the encoded
    string can begin with a hyphen has been corrected.

  * A paragraph has been added to section 6.4 (Alternative methods for
    handling overflow) pointing out that if the Punycode decoder is used
    only inside the ToUnicode operation (see the IDNA draft), then it
    doesn't need to check for overflow.  (It also explains why.)

  * A Disclaimer and License appendix has been added:

    Regarding this entire document or any portion of it (including
    the pseudocode and C code), the author makes no guarantees and
    is not responsible for any damage resulting from its use.  The
    author grants irrevocable permission to anyone to use, modify,
    and distribute it in any way that does not diminish the rights
    of anyone else to use, modify, and distribute it, provided that
    redistributed derivative works do not contain misleading author or
    version information.  Derivative works need not be licensed under
    similar terms.

  * In the sample implementation the mixed-case annotation handling in
    the encoder has changed slightly.  The previous version, when faced
    with ASCII letters inconsistent with their case flags, would ignore
    the case flags and copy the letters verbatim.  The present version
    honors the case flags and forces the letters to the case indicated
    by the flag.  The new behavior is more useful and more intuitive.
    The change has no effect when the input is nameprepped (already
    lowercase) and the case flags are absent (all unset == lowercase).