public abstract class IDNA extends Object
The IDNA class is not intended for public subclassing.
The non-static methods implement UTS #46 and IDNA2008.
IDNA2008 is implemented according to UTS #46, see getUTS46Instance(int)
.
IDNA2003 is obsolete. The static methods implement IDNA2003. They are all deprecated.
IDNA2003 API Overview:
The static IDNA API methods implement the IDNA protocol as defined in the IDNA RFC. The draft defines 2 operations: ToASCII and ToUnicode. Domain labels containing non-ASCII code points are required to be processed by ToASCII operation before passing it to resolver libraries. Domain names that are obtained from resolver libraries are required to be processed by ToUnicode operation before displaying the domain name to the user. IDNA requires that implementations process input strings with Nameprep, which is a profile of Stringprep , and then with Punycode. Implementations of IDNA MUST fully implement Nameprep and Punycode; neither Nameprep nor Punycode are optional. The input and output of ToASCII and ToUnicode operations are Unicode and are designed to be chainable, i.e., applying ToASCII or ToUnicode operations multiple times to an input string will yield the same result as applying the operation once. ToUnicode(ToUnicode(ToUnicode...(ToUnicode(string)))) == ToUnicode(string) ToASCII(ToASCII(ToASCII...(ToASCII(string))) == ToASCII(string).
Modifier and Type | Class and Description |
---|---|
static class |
IDNA.Error
IDNA error bit set values.
|
static class |
IDNA.Info
Output container for IDNA processing errors.
|
Modifier and Type | Field and Description |
---|---|
static int |
ALLOW_UNASSIGNED
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static int |
CHECK_BIDI
IDNA option to check for whether the input conforms to the BiDi rules.
|
static int |
CHECK_CONTEXTJ
IDNA option to check for whether the input conforms to the CONTEXTJ rules.
|
static int |
CHECK_CONTEXTO
IDNA option to check for whether the input conforms to the CONTEXTO rules.
|
static int |
DEFAULT
Default options value: UTS #46 nontransitional processing.
|
static int |
NONTRANSITIONAL_TO_ASCII
IDNA option for nontransitional processing in ToASCII().
|
static int |
NONTRANSITIONAL_TO_UNICODE
IDNA option for nontransitional processing in ToUnicode().
|
static int |
USE_STD3_RULES
Option to check whether the input conforms to the STD3 ASCII rules,
for example the restriction of labels to LDH characters
(ASCII Letters, Digits and Hyphen-Minus).
|
Modifier | Constructor and Description |
---|---|
protected |
IDNA()
Deprecated.
This API is ICU internal only.
|
Modifier and Type | Method and Description |
---|---|
protected static void |
addError(IDNA.Info info,
IDNA.Error error)
Deprecated.
This API is ICU internal only.
|
protected static void |
addLabelError(IDNA.Info info,
IDNA.Error error)
Deprecated.
This API is ICU internal only.
|
static int |
compare(StringBuffer s1,
StringBuffer s2,
int options)
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static int |
compare(String s1,
String s2,
int options)
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static int |
compare(UCharacterIterator s1,
UCharacterIterator s2,
int options)
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static StringBuffer |
convertIDNToASCII(StringBuffer src,
int options)
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static StringBuffer |
convertIDNToASCII(String src,
int options)
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static StringBuffer |
convertIDNToASCII(UCharacterIterator src,
int options)
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static StringBuffer |
convertIDNToUnicode(StringBuffer src,
int options)
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static StringBuffer |
convertIDNToUnicode(String src,
int options)
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static StringBuffer |
convertIDNToUnicode(UCharacterIterator src,
int options)
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static StringBuffer |
convertToASCII(StringBuffer src,
int options)
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static StringBuffer |
convertToASCII(String src,
int options)
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static StringBuffer |
convertToASCII(UCharacterIterator src,
int options)
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static StringBuffer |
convertToUnicode(StringBuffer src,
int options)
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static StringBuffer |
convertToUnicode(String src,
int options)
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static StringBuffer |
convertToUnicode(UCharacterIterator src,
int options)
Deprecated.
ICU 55 Use UTS 46 instead via
getUTS46Instance(int) . |
static IDNA |
getUTS46Instance(int options)
Returns an IDNA instance which implements UTS #46.
|
protected static boolean |
hasCertainErrors(IDNA.Info info,
EnumSet<IDNA.Error> errors)
Deprecated.
This API is ICU internal only.
|
protected static boolean |
hasCertainLabelErrors(IDNA.Info info,
EnumSet<IDNA.Error> errors)
Deprecated.
This API is ICU internal only.
|
protected static boolean |
isBiDi(IDNA.Info info)
Deprecated.
This API is ICU internal only.
|
protected static boolean |
isOkBiDi(IDNA.Info info)
Deprecated.
This API is ICU internal only.
|
abstract StringBuilder |
labelToASCII(CharSequence label,
StringBuilder dest,
IDNA.Info info)
Converts a single domain name label into its ASCII form for DNS lookup.
|
abstract StringBuilder |
labelToUnicode(CharSequence label,
StringBuilder dest,
IDNA.Info info)
Converts a single domain name label into its Unicode form for human-readable display.
|
abstract StringBuilder |
nameToASCII(CharSequence name,
StringBuilder dest,
IDNA.Info info)
Converts a whole domain name into its ASCII form for DNS lookup.
|
abstract StringBuilder |
nameToUnicode(CharSequence name,
StringBuilder dest,
IDNA.Info info)
Converts a whole domain name into its Unicode form for human-readable display.
|
protected static void |
promoteAndResetLabelErrors(IDNA.Info info)
Deprecated.
This API is ICU internal only.
|
protected static void |
resetInfo(IDNA.Info info)
Deprecated.
This API is ICU internal only.
|
protected static void |
setBiDi(IDNA.Info info)
Deprecated.
This API is ICU internal only.
|
protected static void |
setNotOkBiDi(IDNA.Info info)
Deprecated.
This API is ICU internal only.
|
protected static void |
setTransitionalDifferent(IDNA.Info info)
Deprecated.
This API is ICU internal only.
|
public static final int DEFAULT
Since ICU 76, this is the same as
NONTRANSITIONAL_TO_ASCII
| NONTRANSITIONAL_TO_UNICODE
,
corresponding to Unicode 15.1 UTS #46 deprecating transitional processing.
(These options are ignored by the IDNA2003 implementation.)
Before ICU 76, this constant did not set any of the options.
@Deprecated public static final int ALLOW_UNASSIGNED
getUTS46Instance(int)
.This option is ignored by the UTS46 implementation. (UTS #46 disallows unassigned code points.)
public static final int USE_STD3_RULES
public static final int CHECK_BIDI
This option is ignored by the IDNA2003 implementation. (IDNA2003 always performs a BiDi check.)
public static final int CHECK_CONTEXTJ
This option is ignored by the IDNA2003 implementation. (The CONTEXTJ check is new in IDNA2008.)
public static final int NONTRANSITIONAL_TO_ASCII
By default, ToASCII() uses transitional processing. Unicode 15.1 UTS #46 deprecated transitional processing.
This option is ignored by the IDNA2003 implementation. (This is only relevant for compatibility of newer IDNA implementations with IDNA2003.)
public static final int NONTRANSITIONAL_TO_UNICODE
By default, ToUnicode() uses transitional processing. Unicode 15.1 UTS #46 deprecated transitional processing.
This option is ignored by the IDNA2003 implementation. (This is only relevant for compatibility of newer IDNA implementations with IDNA2003.)
public static final int CHECK_CONTEXTO
This option is ignored by the IDNA2003 implementation. (The CONTEXTO check is new in IDNA2008.)
This is for use by registries for IDNA2008 conformance. UTS #46 does not require the CONTEXTO check.
@Deprecated protected IDNA()
public static IDNA getUTS46Instance(int options)
UTS #46 defines Unicode IDNA Compatibility Processing, updated to the latest version of Unicode and compatible with both IDNA2003 and IDNA2008.
The worker functions use transitional processing, including deviation mappings,
unless NONTRANSITIONAL_TO_ASCII
or NONTRANSITIONAL_TO_UNICODE
is used in which case the deviation characters are passed through without change.
Unicode 15.1 UTS #46 deprecated transitional processing.
Disallowed characters are mapped to U+FFFD.
Operations with the UTS #46 instance do not support the ALLOW_UNASSIGNED option.
By default, the UTS #46 implementation allows all ASCII characters (as valid or mapped). When the USE_STD3_RULES option is used, ASCII characters other than letters, digits, hyphen (LDH) and dot/full stop are disallowed and mapped to U+FFFD.
options
- Bit set to modify the processing and error checking.
These should include DEFAULT
, or
NONTRANSITIONAL_TO_ASCII
| NONTRANSITIONAL_TO_UNICODE
.public abstract StringBuilder labelToASCII(CharSequence label, StringBuilder dest, IDNA.Info info)
label
- Input domain name labeldest
- Destination string objectinfo
- Output container of IDNA processing details.public abstract StringBuilder labelToUnicode(CharSequence label, StringBuilder dest, IDNA.Info info)
label
- Input domain name labeldest
- Destination string objectinfo
- Output container of IDNA processing details.public abstract StringBuilder nameToASCII(CharSequence name, StringBuilder dest, IDNA.Info info)
name
- Input domain namedest
- Destination string objectinfo
- Output container of IDNA processing details.public abstract StringBuilder nameToUnicode(CharSequence name, StringBuilder dest, IDNA.Info info)
name
- Input domain namedest
- Destination string objectinfo
- Output container of IDNA processing details.@Deprecated protected static void resetInfo(IDNA.Info info)
@Deprecated protected static boolean hasCertainErrors(IDNA.Info info, EnumSet<IDNA.Error> errors)
@Deprecated protected static boolean hasCertainLabelErrors(IDNA.Info info, EnumSet<IDNA.Error> errors)
@Deprecated protected static void addLabelError(IDNA.Info info, IDNA.Error error)
@Deprecated protected static void promoteAndResetLabelErrors(IDNA.Info info)
@Deprecated protected static void addError(IDNA.Info info, IDNA.Error error)
@Deprecated protected static void setTransitionalDifferent(IDNA.Info info)
@Deprecated protected static void setBiDi(IDNA.Info info)
@Deprecated protected static boolean isBiDi(IDNA.Info info)
@Deprecated protected static void setNotOkBiDi(IDNA.Info info)
@Deprecated protected static boolean isOkBiDi(IDNA.Info info)
@Deprecated public static StringBuffer convertToASCII(String src, int options) throws StringPrepParseException
getUTS46Instance(int)
.src
- The input string to be processedoptions
- A bit set of options:
- IDNA.DEFAULT Use default options, i.e., do not process unassigned code points
and do not use STD3 ASCII rules
If unassigned code points are found the operation fails with
StringPrepParseException.
- IDNA.ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
If this option is set, the unassigned code points are in the input
are treated as normal Unicode code points.
- IDNA.USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
If this option is set and the input does not satisfy STD3 rules,
the operation will fail with ParseExceptionStringPrepParseException
- When an error occurs for parsing a string.@Deprecated public static StringBuffer convertToASCII(StringBuffer src, int options) throws StringPrepParseException
getUTS46Instance(int)
.src
- The input string as StringBuffer to be processedoptions
- A bit set of options:
- IDNA.DEFAULT Use default options, i.e., do not process unassigned code points
and do not use STD3 ASCII rules
If unassigned code points are found the operation fails with
ParseException.
- IDNA.ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
If this option is set, the unassigned code points are in the input
are treated as normal Unicode code points.
- IDNA.USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
If this option is set and the input does not satisfy STD3 rules,
the operation will fail with ParseExceptionStringPrepParseException
@Deprecated public static StringBuffer convertToASCII(UCharacterIterator src, int options) throws StringPrepParseException
getUTS46Instance(int)
.src
- The input string as UCharacterIterator to be processedoptions
- A bit set of options:
- IDNA.DEFAULT Use default options, i.e., do not process unassigned code points
and do not use STD3 ASCII rules
If unassigned code points are found the operation fails with
ParseException.
- IDNA.ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
If this option is set, the unassigned code points are in the input
are treated as normal Unicode code points.
- IDNA.USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
If this option is set and the input does not satisfy STD3 rules,
the operation will fail with ParseExceptionStringPrepParseException
@Deprecated public static StringBuffer convertIDNToASCII(UCharacterIterator src, int options) throws StringPrepParseException
getUTS46Instance(int)
.src
- The input string as UCharacterIterator to be processedoptions
- A bit set of options:
- IDNA.DEFAULT Use default options, i.e., do not process unassigned code points
and do not use STD3 ASCII rules
If unassigned code points are found the operation fails with
ParseException.
- IDNA.ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
If this option is set, the unassigned code points are in the input
are treated as normal Unicode code points.
- IDNA.USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
If this option is set and the input does not satisfy STD3 rules,
the operation will fail with ParseExceptionStringPrepParseException
@Deprecated public static StringBuffer convertIDNToASCII(StringBuffer src, int options) throws StringPrepParseException
getUTS46Instance(int)
.src
- The input string as a StringBuffer to be processedoptions
- A bit set of options:
- IDNA.DEFAULT Use default options, i.e., do not process unassigned code points
and do not use STD3 ASCII rules
If unassigned code points are found the operation fails with
ParseException.
- IDNA.ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
If this option is set, the unassigned code points are in the input
are treated as normal Unicode code points.
- IDNA.USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
If this option is set and the input does not satisfy STD3 rules,
the operation will fail with ParseExceptionStringPrepParseException
@Deprecated public static StringBuffer convertIDNToASCII(String src, int options) throws StringPrepParseException
getUTS46Instance(int)
.src
- The input string to be processedoptions
- A bit set of options:
- IDNA.DEFAULT Use default options, i.e., do not process unassigned code points
and do not use STD3 ASCII rules
If unassigned code points are found the operation fails with
ParseException.
- IDNA.ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
If this option is set, the unassigned code points are in the input
are treated as normal Unicode code points.
- IDNA.USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
If this option is set and the input does not satisfy STD3 rules,
the operation will fail with ParseExceptionStringPrepParseException
@Deprecated public static StringBuffer convertToUnicode(String src, int options) throws StringPrepParseException
getUTS46Instance(int)
.src
- The input string to be processedoptions
- A bit set of options:
- IDNA.DEFAULT Use default options, i.e., do not process unassigned code points
and do not use STD3 ASCII rules
If unassigned code points are found the operation fails with
ParseException.
- IDNA.ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
If this option is set, the unassigned code points are in the input
are treated as normal Unicode code points.
- IDNA.USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
If this option is set and the input does not satisfy STD3 rules,
the operation will fail with ParseExceptionStringPrepParseException
@Deprecated public static StringBuffer convertToUnicode(StringBuffer src, int options) throws StringPrepParseException
getUTS46Instance(int)
.src
- The input string as StringBuffer to be processedoptions
- A bit set of options:
- IDNA.DEFAULT Use default options, i.e., do not process unassigned code points
and do not use STD3 ASCII rules
If unassigned code points are found the operation fails with
ParseException.
- IDNA.ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
If this option is set, the unassigned code points are in the input
are treated as normal Unicode code points.
- IDNA.USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
If this option is set and the input does not satisfy STD3 rules,
the operation will fail with ParseExceptionStringPrepParseException
@Deprecated public static StringBuffer convertToUnicode(UCharacterIterator src, int options) throws StringPrepParseException
getUTS46Instance(int)
.src
- The input string as UCharacterIterator to be processedoptions
- A bit set of options:
- IDNA.DEFAULT Use default options, i.e., do not process unassigned code points
and do not use STD3 ASCII rules
If unassigned code points are found the operation fails with
ParseException.
- IDNA.ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
If this option is set, the unassigned code points are in the input
are treated as normal Unicode code points.
- IDNA.USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
If this option is set and the input does not satisfy STD3 rules,
the operation will fail with ParseExceptionStringPrepParseException
@Deprecated public static StringBuffer convertIDNToUnicode(UCharacterIterator src, int options) throws StringPrepParseException
getUTS46Instance(int)
.src
- The input string as UCharacterIterator to be processedoptions
- A bit set of options:
- IDNA.DEFAULT Use default options, i.e., do not process unassigned code points
and do not use STD3 ASCII rules
If unassigned code points are found the operation fails with
ParseException.
- IDNA.ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
If this option is set, the unassigned code points are in the input
are treated as normal Unicode code points.
- IDNA.USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
If this option is set and the input does not satisfy STD3 rules,
the operation will fail with ParseExceptionStringPrepParseException
@Deprecated public static StringBuffer convertIDNToUnicode(StringBuffer src, int options) throws StringPrepParseException
getUTS46Instance(int)
.src
- The input string as StringBuffer to be processedoptions
- A bit set of options:
- IDNA.DEFAULT Use default options, i.e., do not process unassigned code points
and do not use STD3 ASCII rules
If unassigned code points are found the operation fails with
ParseException.
- IDNA.ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
If this option is set, the unassigned code points are in the input
are treated as normal Unicode code points.
- IDNA.USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
If this option is set and the input does not satisfy STD3 rules,
the operation will fail with ParseExceptionStringPrepParseException
@Deprecated public static StringBuffer convertIDNToUnicode(String src, int options) throws StringPrepParseException
getUTS46Instance(int)
.src
- The input string to be processedoptions
- A bit set of options:
- IDNA.DEFAULT Use default options, i.e., do not process unassigned code points
and do not use STD3 ASCII rules
If unassigned code points are found the operation fails with
ParseException.
- IDNA.ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
If this option is set, the unassigned code points are in the input
are treated as normal Unicode code points.
- IDNA.USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
If this option is set and the input does not satisfy STD3 rules,
the operation will fail with ParseExceptionStringPrepParseException
@Deprecated public static int compare(StringBuffer s1, StringBuffer s2, int options) throws StringPrepParseException
getUTS46Instance(int)
.s1
- First IDN string as StringBuffers2
- Second IDN string as StringBufferoptions
- A bit set of options:
- IDNA.DEFAULT Use default options, i.e., do not process unassigned code points
and do not use STD3 ASCII rules
If unassigned code points are found the operation fails with
ParseException.
- IDNA.ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
If this option is set, the unassigned code points are in the input
are treated as normal Unicode code points.
- IDNA.USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
If this option is set and the input does not satisfy STD3 rules,
the operation will fail with ParseExceptionStringPrepParseException
@Deprecated public static int compare(String s1, String s2, int options) throws StringPrepParseException
getUTS46Instance(int)
.s1
- First IDN strings2
- Second IDN stringoptions
- A bit set of options:
- IDNA.DEFAULT Use default options, i.e., do not process unassigned code points
and do not use STD3 ASCII rules
If unassigned code points are found the operation fails with
ParseException.
- IDNA.ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
If this option is set, the unassigned code points are in the input
are treated as normal Unicode code points.
- IDNA.USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
If this option is set and the input does not satisfy STD3 rules,
the operation will fail with ParseExceptionStringPrepParseException
@Deprecated public static int compare(UCharacterIterator s1, UCharacterIterator s2, int options) throws StringPrepParseException
getUTS46Instance(int)
.s1
- First IDN string as UCharacterIterators2
- Second IDN string as UCharacterIteratoroptions
- A bit set of options:
- IDNA.DEFAULT Use default options, i.e., do not process unassigned code points
and do not use STD3 ASCII rules
If unassigned code points are found the operation fails with
ParseException.
- IDNA.ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations
If this option is set, the unassigned code points are in the input
are treated as normal Unicode code points.
- IDNA.USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions
If this option is set and the input does not satisfy STD3 rules,
the operation will fail with ParseExceptionStringPrepParseException
Copyright © 2016 Unicode, Inc. and others.