[JDK 8] Code review request JDK-8023881, IDN.USE_STD3_ASCII_RULES option is too strict to use Unicode in IDN.toASCII

Xuelei Fan xuelei.fan at oracle.com
Thu Aug 29 05:46:51 PDT 2013


Hi,

Please review the fix of JDK-8023881.

webrev: http://cr.openjdk.java.net/~xuelei/8023881/webrev.00/

This bug has not been ported to bugs.sun.com.  The following is the
descirption of the issue.

--------------------------------------------------------
IDN.toASCII("示例.com", IDN.USE_STD3_ASCII_RULES) throws:

Exception ... java.lang.IllegalArgumentException: Contains non-LDH
characters
at java.net.IDN.toASCIIInternal(IDN.java:275)
at java.net.IDN.toASCII(IDN.java:118)

However, the "idn" tool is able to handle above IDN properly:
$ idn --usestd3asciirules www.示例.com
www.xn--fsq092h.com

Per step 3, section 4.1, RFC 3490:

   3. If the UseSTD3ASCIIRules flag is set, then perform these checks:

     (a) Verify the absence of non-LDH ASCII code points; that is, the
         absence of 0..2C, 2E..2F, 3A..40, 5B..60, and 7B..7F.

     (b) Verify the absence of leading and trailing hyphen-minus; that
         is, the absence of U+002D at the beginning and end of the
         sequence.

However, in the impl of IDN is checking far more strictly than above.
Unicode point bigger than 0x007A is not acceptable.  It is too strict to
convert Unicode with IDN.toASCII() if IDN.USE_STD3_ASCII_RULES option is
set.
--------------------------------------------------------

Thanks,
Xuelei



More information about the net-dev mailing list