IDNA::Punycode(3p)

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