1Net::IDN::Overview(3) User Contributed Perl DocumentationNet::IDN::Overview(3)
2
3
4
6 Net::IDN::Overwiew - Internationalized Domain Names for Applications
7 (IDNA)
8
10 The "Net::IDN::*" modules provide a framework for the handling of
11 Internationalized Domain Names for Applications (IDNA) in perl
12 programmes.
13
14 This document provides an overview of the available modules in order to
15 allow you to choose the best module for the task at hand.
16
17 AVAILABLE MODULES
18 HIGH-LEVEL (USE THIS)
19
20 Net::IDN::Encode
21 provides a high-level interface for converting domain names (and
22 for convenience, email addresses).
23
24 Use this module if you just want to convert domain names and don't
25 care about how this is done internally.
26
27 Currently, this module uses Net::IDN::UTS46. However, this might
28 change in the future if another specification (e.g. a revision of
29 IDNA2008) becomes more appropriate.
30
31 The author aims for Net::IDN::Encode to always use the
32 specification that will provide the "least surprising" results.
33
34 STANDARD-SPECIFIC
35
36 These modules implement different versions of the the IDNA
37 specifications. Use one of these modules only if you require
38 compatibility with a specific incarnation of IDNA.
39
40 Net::IDN::IDNA2003
41 implements the original IDNA specification, released in 2003
42 (IDNA2003), which is now obsolete.
43
44 IDNA2003 is defined in RFC 3490 <http://tools.ietf.org/rfc/3490>
45 and related documents.
46
47 Net::IDN::UTS46
48 implements Unicode Technical Standard #46 (UTS #46
49 <http://unicode.org/reports/tr46/>), Unicode IDNA Compatibility
50 Processing. This specification supports all domain names allowed
51 under either IDNA2003 or IDNA2008.
52
53 ENCODING
54
55 Net::IDN::Punycode
56 performs the actual conversion between the ASCII and Unicode form
57 of strings. Punycode is defined in RFC 3492
58 <http://tools.ietf.org/rfc/3492> and related documents.
59
60 Usually, it is not a good idea to use this module directly. If you
61 convert domain labels (or other strings) without proper
62 preparation, you may end up with an ASCII encoding that is not
63 interoperable or poses security issues due to spoofing.
64
65 Even if you think that your domain names are valid and in already-
66 mapped format, you might be fooled by different Unicode
67 normalization forms (for example, some environments might
68 automatically convert your data to NFD, which breaks IDNA).
69
70 DEPRECATED/COMPATIBILITY
71
72 These modules are only maintained in order to not break applications
73 that might rely on them
74
75 Encode::Punycode
76 provides an Encode plugin for Punycode. As Punycode is not a
77 general-purpose encoding, there are limited applications.
78
79 IDNA::Punycode
80 has an API depending on global variables. Don't use this module.
81
82 DISTRIBUTIONS
83 Net-IDN-Encode
84 is the main distribution covering the most common cases for
85 converting domain names between ASCII and Unicode.
86
87 The author tries to keep the dependency chain as small as possible;
88 currently this distribution only depends on perl 5.8.5 (including
89 the core module Unicode::Normalize ).
90
91 Net-IDN-IDNA2003
92 provides the Net::IDN::IDNA2003 module. This is separate because it
93 has an dependency on Unicode::Stringprep (through
94 Net::IDN::Nameprep).
95
96 Encode-Punycode
97 IDNA-Punycode
98 are separate because they are of limited use to the average
99 user/perl programmer.
100
102 Claus Faerber <CFAERBER@cpan.org>
103
104
105
106perl v5.32.0 2020-07-28 Net::IDN::Overview(3)