public final class

IDN

extends Object
java.lang.Object
   ↳ java.net.IDN

Class Overview

Converts internationalized domain names between Unicode and the ASCII Compatible Encoding (ACE) representation.

See RFC 3490 for full details.

Summary

Constants
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 & RFC 1123.
Public Methods
static String toASCII(String input)
Equivalent to toASCII(input, 0).
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 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).
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int ALLOW_UNASSIGNED

Since: API Level 9

When set, allows IDN to process unassigned unicode points.

Constant Value: 1 (0x00000001)

public static final int USE_STD3_ASCII_RULES

Since: API Level 9

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

Constant Value: 2 (0x00000002)

Public Methods

public static String toASCII (String input)

Since: API Level 9

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 toASCII (String input, int flags)

Since: API Level 9

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 toUnicode (String input, int flags)

Since: API Level 9

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)

Since: API Level 9

Equivalent to toUnicode(input, 0).

Parameters
input the ACE name
Returns
  • the Unicode name