Package java.net

Class IDN


  • public final class IDN
    extends Object
    Converts internationalized domain names between Unicode and the ASCII Compatible Encoding (ACE) representation.

    See RFC 3490 for full details.

    Since:
    1.6
    • Field Detail

      • ALLOW_UNASSIGNED

        public static final int ALLOW_UNASSIGNED
        When set, allows IDN to process unassigned unicode points.
        See Also:
        Constant Field Values
    • Method Detail

      • toASCII

        public static String toASCII​(String input,
                                     int flags)
        Transform a Unicode String to ASCII Compatible Encoding String according to the algorithm defined in RFC 3490.

        If the transformation fails (because the input is not a valid IDN), an exception will be thrown.

        This method can handle either an individual label or an entire domain name. In the latter case, the separators are: U+002E (full stop), U+3002 (ideographic full stop), U+FF0E (fullwidth full stop), and U+FF61 (halfwidth ideographic full stop). All of these will become U+002E (full stop) in the result.

        Parameters:
        input - the Unicode name
        flags - 0, ALLOW_UNASSIGNED, USE_STD3_ASCII_RULES, or ALLOW_UNASSIGNED | USE_STD3_ASCII_RULES
        Returns:
        the ACE name
        Throws:
        IllegalArgumentException - if input does not conform to RFC 3490
      • toASCII

        public static String toASCII​(String input)
        Equivalent to toASCII(input, 0).
        Parameters:
        input - the Unicode name
        Returns:
        the ACE name
        Throws:
        IllegalArgumentException - if input does not conform to RFC 3490
      • toUnicode

        public static String toUnicode​(String input,
                                       int flags)
        Translates a string from ASCII Compatible Encoding (ACE) to Unicode according to the algorithm defined in RFC 3490.

        Unlike toASCII, this transformation cannot fail.

        This method can handle either an individual label or an entire domain name. In the latter case, the separators are: U+002E (full stop), U+3002 (ideographic full stop), U+FF0E (fullwidth full stop), and U+FF61 (halfwidth ideographic full stop).

        Parameters:
        input - the ACE name
        flags - 0, ALLOW_UNASSIGNED, USE_STD3_ASCII_RULES, or ALLOW_UNASSIGNED | USE_STD3_ASCII_RULES
        Returns:
        the Unicode name
      • toUnicode

        public static String toUnicode​(String input)
        Equivalent to toUnicode(input, 0).
        Parameters:
        input - the ACE name
        Returns:
        the Unicode name