|
|
| |
Net::LibIDN2(3) |
User Contributed Perl Documentation |
Net::LibIDN2(3) |
Net::LibIDN2 - Perl bindings for GNU Libidn2
use Net::LibIDN2 ':all';
idn2_lookup_u8(Encode::encode_utf8("m\N{U+00FC}\N{U+00DF}li.de"))
eq 'xn--mli-5ka8l.de';
idn2_register_u8(
Encode::encode_utf8("m\N{U+00FC}\N{U+00DF}li"),
"xn--mli-5ka8l"
) eq 'xn--mli-5ka8l';
Encode::decode_utf8(idn2_to_unicode_88("xn--mli-5ka8l.de"))
eq "m\N{U+00FC}\N{U+00DF}li"
Provides bindings for GNU Libidn2, a C library for handling internationalized
domain names based on IDNA 2008, Punycode and TR46.
- Net::LibIDN2::idn2_lookup_u8($src [,
$flags [, $rc]]);
- Alternative name idn2_to_ascii_8.
Perform IDNA2008 lookup string conversion on domain name
$src, as described in section 5 of RFC 5891. Note that the input
string must be encoded in UTF-8 and be in Unicode NFC form.
Pass IDN2_NFC_INPUT in $flags to
convert input to NFC form before further processing. IDN2_TRANSITIONAL
and IDN2_NONTRANSITIONAL do already imply IDN2_NFC_INPUT.
Pass IDN2_ALABEL_ROUNDTRIP in flags to convert any
input A-labels to U-labels and perform additional testing. This is
default if used with a libidn version >= 2.2. To switch this behavior
off, pass IDN2_NO_ALABEL_ROUNDTRIP
Pass IDN2_TRANSITIONAL to enable Unicode TR46 transitional
processing, and IDN2_NONTRANSITIONAL to enable Unicode TR46
non-transitional processing.
Multiple flags may be specified by binary or:ing them
together, for example IDN2_NFC_INPUT |
IDN2_ALABEL_ROUNDTRIP.
If linked to library GNU Libidn version > 2.0.3:
IDN2_USE_STD3_ASCII_RULES disabled by default. Previously we were
eliminating non-STD3 characters from domain strings such as
_443._tcp.example.com, or IPs 1.2.3.4/24 provided to libidn2 functions.
That was an unexpected regression for applications switching from libidn
and thus it is no longer applied by default. Use
IDN2_USE_STD3_ASCII_RULES to enable that behavior again.
On error, returns undef. If a scalar variable is provided in
$rc, returns the internal libidn2 C library result
code as well.
- Net::LibIDN2::idn2_lookup_ul($src [,
$flags [, $rc]]);
- Alternative name idn2_to_ascii_l.
Similar to function
"idn2_lookup_u8" but
$src is assumed to be encoded in the locale's
default coding system, and will be transcoded to UTF-8 and NFC
normalized before returning the result.
- Net::LibIDN2::idn2_register_u8($ulabel [,
$alabel, [$flags,
[$rc ]]]);
- Perform IDNA2008 register string conversion on domain label
$ulabel and $alabel, as
described in section 4 of RFC 5891. Note that the input ulabel must be
encoded in UTF-8 and be in Unicode NFC form.
Pass IDN2_NFC_INPUT in $flags to
convert input $ulabel to NFC form before further
processing.
It is recommended to supply both $ulabel
and $alabel for better error checking, but
supplying just one of them will work. Passing in only
$alabel is better than only
$ulabel. See RFC 5891 section 4 for more
information.
On error, returns undef. If a scalar variable is provided in
$rc, returns the internal libidn2 C library result
code as well.
- Net::LibIDN2::idn2_register_u8($ulabel [,
$alabel, [$flags,
[$rc ]]]);
- Similar to function "idn2_register_ul"
but $ulabel is assumed to be encoded in the locale's
default coding system, and will be transcoded to UTF-8 and NFC normalized
before returning the result.
- Net::LibIDN2::idn2_to_unicode_88($input,
[ $flags, [$rc]]);
- Converts a possibly ACE encoded domain name in UTF-8 format into a an
UTF-8 encoded string (punycode decoding).
On error, returns undef. If a scalar variable is provided in
$rc, returns the internal libidn2 C library result
code as well.
- Net::LibIDN2::idn2_to_unicode_8l($input,
[ $flags, [$rc]]);
- Similar to function "idn2_to_unicode_88"
but the return value is encoded in the locale's default coding
system.
- Net::LibIDN2::idn2_to_unicode_ll($input,
[ $flags, [$rc]]);
- Similar to function "idn2_to_unicode_8l"
but $input is also assumed to be encoded in the
locale's default coding system.
- Net::LibIDN2::idn2_strerror($rc);
- Convert internal libidn2 error code $rc to a humanly
readable string.
- Net::LibIDN2::idn2_strerror_name($rc);
- Convert internal libidn2 error code $rc to a string
corresponding to internal header file symbols names like IDN2_MALLOC.
- Net::LibIDN2::id2n_check_version([$req_version])
- Checks that the version of the underlying IDN2 C library is at minimum the
one given as a string in $req_version and if that is
the case returns the actual version string of the underlying C library or
undef if the condition is not met. If no parameter is passed to this
function no check is done and only the version string is returned.
See IDN2_VERSION for a suitable
$req_version string, it corresponds to the idn2.h
C header file version at compile time of this Perl module. Normally
these two version numbers match, but if you compiled this Perl module
against an older libidn2 and then run it with a newer libidn2 shared
library they will be different.
- IDN2_VERSION
- Pre-processor symbol with a string that describe the C header file version
number at compile time of this Perl module. Used together with
idn2_check_version() to verify header file and run-time library
consistency.
- IDN2_VERSION_NUMBER
- Pre-processor symbol with a hexadecimal value describing the C header file
version number at compile time of this Perl module. For example, when the
header version is 1.2.4711 this symbol will have the value 0x01021267. The
last four digits are used to enumerate development snapshots, but for all
public releases they will be 0000.
- IDN2_VERSION_MAJOR
- Pre-processor symbol for the major version number (decimal). The version
scheme is major.minor.patchlevel.
- IDN2_VERSION_MINOR
- Pre-processor symbol for the minor version number (decimal). The version
scheme is major.minor.patchlevel.
- IDN2_VERSION_PATCH
- Pre-processor symbol for the patch level number (decimal). The version
scheme is major.minor.patchlevel.
- IDN2_LABEL_MAX_LENGTH
- Constant specifying the maximum length of a DNS label to 63 characters, as
specified in RFC 1034.
- IDN2_DOMAIN_MAX_LENGTH
- Constant specifying the maximum size of the wire encoding of a DNS domain
to 255 characters, as specified in RFC 1034. Note that the usual printed
representation of a domain name is limited to 253 characters if it does
not end with a period or 254 characters if it ends with a period.
- "Net::LibIDN2::IDN2_OK" Successful return.
- "Net::LibIDN2::IDN2_MALLOC" Memory allocation error.
- "Net::LibIDN2::IDN2_NO_CODESET" Could not determine
locale string encoding format.
- "Net::LibIDN2::IDN2_ICONV_FAIL" Could not transcode
locale string to UTF-8.
- "Net::LibIDN2::IDN2_ENCODING_ERROR" Unicode data encoding
error.
- "Net::LibIDN2::IDN2_NFC" Error normalizing string.
- "Net::LibIDN2::IDN2_PUNYCODE_BAD_INPUT" Punycode invalid
input.
- "Net::LibIDN2::IDN2_PUNYCODE_BIG_OUTPUT" Punycode output
buffer too small.
- "Net::LibIDN2::IDN2_PUNYCODE_OVERFLOW" Punycode
conversion would overflow.
- "Net::LibIDN2::IDN2_TOO_BIG_DOMAIN" Domain name longer
than 255 characters.
- "Net::LibIDN2::IDN2_TOO_BIG_LABEL" Domain label longer
than 63 characters.
- "Net::LibIDN2::IDN2_INVALID_ALABEL" Input A-label is not
valid.
- "Net::LibIDN2::IDN2_UALABEL_MISMATCH" Input A-label and
U-label does not match.
- "Net::LibIDN2::IDN2_NOT_NFC" String is not NFC.
- "Net::LibIDN2::IDN2_2HYPHEN" String has forbidden two
hyphens.
- "Net::LibIDN2::IDN2_HYPHEN_STARTEND" String has forbidden
starting/ending hyphen.
- "Net::LibIDN2::IDN2_LEADING_COMBINING" String has
forbidden leading combining character.
- "Net::LibIDN2::IDN2_DISALLOWED" String has disallowed
character.
- "Net::LibIDN2::IDN2_CONTEXTJ" String has forbidden
context-j character.
- "Net::LibIDN2::IDN2_CONTEXTJ_NO_RULE" String has
context-j character with no rull.
- "Net::LibIDN2::IDN2_CONTEXTO" String has forbidden
context-o character.
- "Net::LibIDN2::IDN2_CONTEXTO_NO_RULE" String has
context-o character with no rull.
- "Net::LibIDN2::IDN2_UNASSIGNED" String has forbidden
unassigned character.
- "Net::LibIDN2::IDN2_BIDI" String has forbidden
bi-directional properties.
- "Net::LibIDN2::IDN2_DOT_IN_LABEL" Label has forbidden dot
(TR46).
- "Net::LibIDN2::IDN2_INVALID_TRANSITIONAL" Label has
character forbidden in transitional mode (TR46).
- "Net::LibIDN2::IDN2_INVALID_NONTRANSITIONAL" Label has
character forbidden in non-transitional mode (TR46).
Thomas Jacob, https://github.com/gnuthor
perl(1), RFC 5890-5893, TR 46, https://gitlab.com/libidn/libidn2.
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |