NAME¶
Net::IDN::Punycode - A Bootstring encoding of Unicode for IDNA (RFC 3492)
SYNOPSIS¶
use Net::IDN::Punycode qw(:all);
$punycode = encode_punycode($unicode);
$unicode = decode_punycode($punycode);
DESCRIPTION¶
This module implements the Punycode encoding. Punycode is an instance of a more
general algorithm called Bootstring, which allows strings composed from a
small set of "basic" code points to uniquely represent any string of
code points drawn from a larger set. Punycode is Bootstring with particular
parameter values appropriate for IDNA.
Note that this module does not do any string preparation as specified by
Nameprep/
IDNA2008/
PRECIS and does not add nor remove the
ACE prefix ("xn--"). Thus, use Net::IDN::Encode if you want to
convert domain names.
WARNING¶
Usually, it is not a good idea to use this module directly. If you convert
domain labels (or other strings) without proper prepration, you may end up
with an ASCII encoding that is not interoperable or even poses security issues
due to spoofing.
Even if you think that your domain names are valid and already mapped to the
correct form, you might be fooled by different Unicode normalization forms
(for example, some environments might automatically convert your data to NFD,
which breaks IDNA).
FUNCTIONS¶
No functions are exported by default. You can use the tag ":all" or
import them individually.
The following functions are available:
- encode_punycode($input)
- Encodes $input with Punycode and returns the result.
This function will throw an exception on invalid/unencodable input.
- decode_punycode($input)
- Decodes $input with Punycode and returns the result.
This function will throw an exception on invalid input.
AUTHORS¶
Tatsuhiko Miyagawa <miyagawa@bulknews.net> (versions 0.01 to 0.02)
Claus Faerber <CFAERBER@cpan.org> (versions 1.000 and higher)
LICENSE¶
Copyright 2002-2004 Tatsuhiko Miyagawa <miyagawa@bulknews.net>
Copyright 2007-2013 Claus Faerber <CFAERBER@cpan.org>
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
SEE ALSO¶
RFC 3492 (<
http://www.ietf.org/rfc/rfc3492.txt>), IETF::ACE,
Convert::RACE