Scroll to navigation

IDNA::Punycode(3pm) User Contributed Perl Documentation IDNA::Punycode(3pm)

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
2005-09-01 perl v5.8.8