NAME
Net::IDN::Overwiew - Internationalized Domain Names for Applications
(IDNA)
DESCRIPTION
The "Net::IDN::*" modules provide a framework for the handling of
Internationalized Domain Names for Applications (IDNA) in perl
programmes.
This document provides an overview of the available modules in order to
allow you to choose the best module for the task at hand.
AVAILABLE MODULES
HIGH-LEVEL (USE THIS)
Net::IDN::Encode
provides a high-level interface for converting domain names (and for
convenience, email addresses).
Use this module if you just want to convert domain names and don't
care about how this is done internally.
Currently, this module uses Net::IDN::UTS46. However, this might
change in the future if another specification (e.g. a revision of
IDNA2008) becomes more appropriate.
The author aims for Net::IDN::Encode to always use the specification
that will provide the "least surprising" results.
STANDARD-SPECIFIC
These modules implement different versions of the the IDNA
specifications. Use one of these modules only if you require
compatibility with a specific incarnation of IDNA.
Net::IDN::IDNA2003
implements the original IDNA specification, released in 2003
(IDNA2003), which is now obsolete.
IDNA2003 is defined in RFC 3490 <http://tools.ietf.org/rfc/3490> and
related documents.
Net::IDN::UTS46
implements Unicode Technical Standard #46 (UTS #46
<http://unicode.org/reports/tr46/>), Unicode IDNA Compatibility
Processing. This specification supports all domain names allowed
under either IDNA2003 or IDNA2008.
ENCODING
Net::IDN::Punycode
performs the actual conversion between the ASCII and Unicode form of
strings. Punycode is defined in RFC 3492
<http://tools.ietf.org/rfc/3492> and related documents.
Usually, it is not a good idea to use this module directly. If you
convert domain labels (or other strings) without proper preparation,
you may end up with an ASCII encoding that is not interoperable or
poses security issues due to spoofing.
Even if you think that your domain names are valid and in
already-mapped format, you might be fooled by different Unicode
normalization forms (for example, some environments might
automatically convert your data to NFD, which breaks IDNA).
DEPRECATED/COMPATIBILITY
These modules are only maintained in order to not break applications
that might rely on them
Encode::Punycode
provides an Encode plugin for Punycode. As Punycode is not a
general-purpose encoding, there are limited applications.
IDNA::Punycode
has an API depending on global variables. Don't use this module.
DISTRIBUTIONS
Net-IDN-Encode
is the main distribution covering the most common cases for
converting domain names between ASCII and Unicode.
The author tries to keep the dependency chain as small as possible;
currently this distribution only depends on perl 5.8.5 (including
the core module Unicode::Normalize ).
Net-IDN-IDNA2003
provides the Net::IDN::IDNA2003 module. This is separate because it
has an dependency on Unicode::Stringprep (through
Net::IDN::Nameprep).
Encode-Punycode
IDNA-Punycode
are separate because they are of limited use to the average
user/perl programmer.
AUTHOR
Claus Färber <CFAERBER AT cpan.org>
Generated by phpMan Author: Che Dong On Apache Under GNU General Public License - MarkDown Format
2026-05-21 22:08 @216.73.216.105 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)