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.

Constant Summary

int ALLOW_UNASSIGNED When set, allows IDN to process unassigned unicode points.
int USE_STD3_ASCII_RULES When set, ASCII strings are checked against RFC 1122 and RFC 1123.

Public Method Summary

static String
toASCII(String input, int flags)
Transform a Unicode String to ASCII Compatible Encoding String according to the algorithm defined in RFC 3490.
static String
toASCII(String input)
Equivalent to toASCII(input, 0).
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.
static String
toUnicode(String input)
Equivalent to toUnicode(input, 0).

Inherited Method Summary

Constants

public static final int ALLOW_UNASSIGNED

When set, allows IDN to process unassigned unicode points.

Constant Value: 1

public static final int USE_STD3_ASCII_RULES

When set, ASCII strings are checked against RFC 1122 and RFC 1123.

Constant Value: 2

Public Methods

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

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

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

public static String toUnicode (String input)

Equivalent to toUnicode(input, 0).

Parameters
input the ACE name
Returns
  • the Unicode name