ICU 72.1 72.1
|
Abstract base class for IDNA processing. More...
#include <idna.h>
Public Member Functions | |
~IDNA () | |
Destructor. More... | |
virtual UnicodeString & | labelToASCII (const UnicodeString &label, UnicodeString &dest, IDNAInfo &info, UErrorCode &errorCode) const =0 |
Converts a single domain name label into its ASCII form for DNS lookup. More... | |
virtual UnicodeString & | labelToUnicode (const UnicodeString &label, UnicodeString &dest, IDNAInfo &info, UErrorCode &errorCode) const =0 |
Converts a single domain name label into its Unicode form for human-readable display. More... | |
virtual UnicodeString & | nameToASCII (const UnicodeString &name, UnicodeString &dest, IDNAInfo &info, UErrorCode &errorCode) const =0 |
Converts a whole domain name into its ASCII form for DNS lookup. More... | |
virtual UnicodeString & | nameToUnicode (const UnicodeString &name, UnicodeString &dest, IDNAInfo &info, UErrorCode &errorCode) const =0 |
Converts a whole domain name into its Unicode form for human-readable display. More... | |
virtual void | labelToASCII_UTF8 (StringPiece label, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const |
Converts a single domain name label into its ASCII form for DNS lookup. More... | |
virtual void | labelToUnicodeUTF8 (StringPiece label, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const |
Converts a single domain name label into its Unicode form for human-readable display. More... | |
virtual void | nameToASCII_UTF8 (StringPiece name, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const |
Converts a whole domain name into its ASCII form for DNS lookup. More... | |
virtual void | nameToUnicodeUTF8 (StringPiece name, ByteSink &dest, IDNAInfo &info, UErrorCode &errorCode) const |
Converts a whole domain name into its Unicode form for human-readable display. More... | |
Public Member Functions inherited from icu::UObject | |
virtual | ~UObject () |
Destructor. More... | |
virtual UClassID | getDynamicClassID () const |
ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class. More... | |
Static Public Member Functions | |
static IDNA * | createUTS46Instance (uint32_t options, UErrorCode &errorCode) |
Returns an IDNA instance which implements UTS #46. More... | |
Abstract base class for IDNA processing.
See http://www.unicode.org/reports/tr46/ and http://www.ietf.org/rfc/rfc3490.txt
The IDNA class is not intended for public subclassing.
This C++ API currently only implements UTS #46. The uidna.h C API implements both UTS #46 (functions using UIDNA service object) and IDNA2003 (functions that do not use a service object).
icu::IDNA::~IDNA | ( | ) |
Destructor.
|
static |
Returns an IDNA instance which implements UTS #46.
Returns an unmodifiable instance, owned by the caller. Cache it for multiple operations, and delete it when done. The instance is thread-safe, that is, it can be used concurrently.
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 UIDNA_NONTRANSITIONAL_TO_ASCII or UIDNA_NONTRANSITIONAL_TO_UNICODE is used in which case the deviation characters are passed through without change.
Disallowed characters are mapped to U+FFFD.
For available options see the uidna.h header. Operations with the UTS #46 instance do not support the UIDNA_ALLOW_UNASSIGNED option.
By default, the UTS #46 implementation allows all ASCII characters (as valid or mapped). When the UIDNA_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. See option bit set values in uidna.h. |
errorCode | Standard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.) |
|
pure virtual |
Converts a single domain name label into its ASCII form for DNS lookup.
If any processing step fails, then info.hasErrors() will be true and the result might not be an ASCII string. The label might be modified according to the types of errors. Labels with severe errors will be left in (or turned into) their Unicode form.
The UErrorCode indicates an error only in exceptional cases, such as a U_MEMORY_ALLOCATION_ERROR.
label | Input domain name label |
dest | Destination string object |
info | Output container of IDNA processing details. |
errorCode | Standard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.) |
|
virtual |
Converts a single domain name label into its ASCII form for DNS lookup.
UTF-8 version of labelToASCII(), same behavior.
label | Input domain name label |
dest | Destination byte sink; Flush()ed if successful |
info | Output container of IDNA processing details. |
errorCode | Standard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.) |
|
pure virtual |
Converts a single domain name label into its Unicode form for human-readable display.
If any processing step fails, then info.hasErrors() will be true. The label might be modified according to the types of errors.
The UErrorCode indicates an error only in exceptional cases, such as a U_MEMORY_ALLOCATION_ERROR.
label | Input domain name label |
dest | Destination string object |
info | Output container of IDNA processing details. |
errorCode | Standard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.) |
|
virtual |
Converts a single domain name label into its Unicode form for human-readable display.
UTF-8 version of labelToUnicode(), same behavior.
label | Input domain name label |
dest | Destination byte sink; Flush()ed if successful |
info | Output container of IDNA processing details. |
errorCode | Standard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.) |
|
pure virtual |
Converts a whole domain name into its ASCII form for DNS lookup.
If any processing step fails, then info.hasErrors() will be true and the result might not be an ASCII string. The domain name might be modified according to the types of errors. Labels with severe errors will be left in (or turned into) their Unicode form.
The UErrorCode indicates an error only in exceptional cases, such as a U_MEMORY_ALLOCATION_ERROR.
name | Input domain name |
dest | Destination string object |
info | Output container of IDNA processing details. |
errorCode | Standard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.) |
|
virtual |
Converts a whole domain name into its ASCII form for DNS lookup.
UTF-8 version of nameToASCII(), same behavior.
name | Input domain name |
dest | Destination byte sink; Flush()ed if successful |
info | Output container of IDNA processing details. |
errorCode | Standard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.) |
|
pure virtual |
Converts a whole domain name into its Unicode form for human-readable display.
If any processing step fails, then info.hasErrors() will be true. The domain name might be modified according to the types of errors.
The UErrorCode indicates an error only in exceptional cases, such as a U_MEMORY_ALLOCATION_ERROR.
name | Input domain name |
dest | Destination string object |
info | Output container of IDNA processing details. |
errorCode | Standard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.) |
|
virtual |
Converts a whole domain name into its Unicode form for human-readable display.
UTF-8 version of nameToUnicode(), same behavior.
name | Input domain name |
dest | Destination byte sink; Flush()ed if successful |
info | Output container of IDNA processing details. |
errorCode | Standard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.) |