package Encode::Punycode; use strict; our $VERSION = 0.02; require Encode; use base qw(Encode::Encoding); __PACKAGE__->Define('Punycode', 'punycode'); require IDNA::Punycode; sub encode { my($obj, $str, $chk) = @_; $str = IDNA::Punycode::encode_punycode($str); $_[1] = '' if $chk; return $str; } sub decode { my($obj, $str, $chk) = @_; $str = IDNA::Punycode::decode_punycode($str); $_[1] = '' if $chk; return $str; } 1; __END__ =head1 NAME Encode::Punycode - Encode plugin for Punycode encodings =head1 SYNOPSIS use Encode::Punycode; use Encode; $unicode = decode('Punycode', $punycode); $punycode = encode('Punycode', $unicode); =head1 DESCRIPTION Encode::Punycode is an Encode plugin, which allows you to encode Unicode strings into Punycode. Punycode is an efficient encoding (ACE) of Unicode for use with IDNA. =head1 AUTHOR Tatsuhiko Miyagawa Emiyagawa@bulknews.netE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO http://www.ietf.org/internet-drafts/draft-ietf-idn-punycode-01.txt L =cut