NAME¶
IDNA::Punycode - encodes Unicode string in Punycode
SYNOPSIS¶
use IDNA::Punycode;
idn_prefix('xn--');
$punycode = encode_punycode($unicode);
$unicode = decode_punycode($punycode);
DESCRIPTION¶
IDNA::Punycode is a module to encode / decode Unicode strings into Punycode, an
efficient encoding of Unicode for use with IDNA.
This module requires Perl 5.6.0 or over to handle UTF8 flagged Unicode strings.
FUNCTIONS¶
This module exports following functions by default.
- encode_punycode
-
$punycode = encode_punycode($unicode);
takes Unicode string (UTF8-flagged variable) and returns Punycode encoding
for it.
- decode_punycode
-
$unicode = decode_punycode($punycode)
takes Punycode encoding and returns original Unicode string.
- idn_prefix
-
idn_prefix($prefix);
causes encode_punycode() to add $prefix to ACE-string after
conversion. As a side-effect decode_punycode() will only consider
strings beginning with $prefix as punycode representations.
According to RFC 3490 the ACE prefix "xn--" had been chosen as the
standard. Thus, "xn--" is also the default ACE prefix. For
compatibility I'm leaving idn_prefix() in the module. Use
"idn_prefix(undef)" to get the old behaviour.
These functions throws exceptionsn on failure. You can catch 'em via
"eval".
AUTHORS¶
Tatsuhiko Miyagawa <miyagawa@bulknews.net> is the original author and
wrote almost all the code.
Robert Urban <urban@UNIX-Beratung.de> added "idn_prefix()".
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
SEE ALSO¶
http://www.ietf.org/internet-drafts/draft-ietf-idn-punycode-01.txt
Encode::Punycode