=head1 NAME Web::DomainName::Punycode - A wrapper for Punycode encoding and decoding =head1 SYNOPSIS use Web::DomainName::Punycode; $out = encode_punycode $in; $out = decode_punycode $in; =head1 DESCRIPTION The C module provides functions to encode and decode Punycode. =head1 FUNCTIONS This module exports two functions: =over 4 =item $out = encode_punycode $in Encode the given string. It returns the Punycode-encoded representation, i.e. a string of ASCII characters. If the input cannot be encoded, C is returned. =item $out = decode_punycode $in Decode the given string. It returns the Punycode-decoded representation, i.e. a string of Unicode characters. If the input cannot be decoded, e.g. because the input is not a Punycode-encoded string, C is returned. =back =head1 SEE ALSO RFC 3492, I, March 2003. . SuikaWiki:Punycode . Although there are a number of Punycode implementations written in Perl, they are broken or badly designed (see "Implementation" section of ). Relatively better implementations of Punycode include: L. GNU IDN Library - Libidn . L. Previous version of the L depend on one of these modules. However, for the ease of deployment, current version of the module contains a copy of L such that no XS or Perl module is required for encoding and decoding. =head1 AUTHOR Wakaba . =head1 ACKNOWLEDGEMENTS This module contains a copy of L, whose credit contains: Tatsuhiko Miyagawa is the author of IDNA::Punycode v0.02 which was the basis for this module. =head1 LICENSE Copyright 2011-2012 Wakaba . This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut