# phpman > perldoc > Net::IDN::Overview

## NAME
    [Net::IDN::Overwiew](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3AIDN%3A%3AOverwiew/markdown) - Internationalized Domain Names for Applications (IDNA)

## DESCRIPTION
    The "[Net::IDN](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3AIDN/markdown)::*" 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](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3AIDN%3A%3AEncode/markdown)
        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](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3AIDN%3A%3AUTS46/markdown). 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](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3AIDN%3A%3AEncode/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3AIDN%3A%3AIDNA2003/markdown)
        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](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3AIDN%3A%3AUTS46/markdown)
        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](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3AIDN%3A%3APunycode/markdown)
        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](https://www.chedong.com/phpMan.php/perldoc/Encode%3A%3APunycode/markdown)
        provides an Encode plugin for Punycode. As Punycode is not a general-purpose encoding, there
        are limited applications.

    [IDNA::Punycode](https://www.chedong.com/phpMan.php/perldoc/IDNA%3A%3APunycode/markdown)
        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](https://www.chedong.com/phpMan.php/perldoc/Unicode%3A%3ANormalize/markdown) ).

    Net-IDN-IDNA2003
        provides the [Net::IDN::IDNA2003](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3AIDN%3A%3AIDNA2003/markdown) module. This is separate because it has an dependency on
        [Unicode::Stringprep](https://www.chedong.com/phpMan.php/perldoc/Unicode%3A%3AStringprep/markdown) (through [Net::IDN::Nameprep](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3AIDN%3A%3ANameprep/markdown)).

    Encode-Punycode
    IDNA-Punycode
        are separate because they are of limited use to the average user/perl programmer.

## AUTHOR
    Claus Färber <<CFAERBER@cpan.org>>

