Encode::Punycode - Encode plugin for Punycode (S<RFC 3492>)


Encode-Punycode documentation Contained in the Encode-Punycode distribution.

Index


Code Index:

NAME

Top

Encode::Punycode - Encode plugin for Punycode (RFC 3492)

SYNOPSIS

Top

  use Encode;
  $unicode  = decode('Punycode', $punycode);
  $punycode = encode('Punycode', $unicode);

DESCRIPTION

Top

Encode::Punycode is an Encode plugin, which implements the Punycode encoding.

Punycode is an instance of a more general algorithm called Bootstring, which allows strings composed from a small set of "basic" code points to uniquely represent any string of code points drawn from a larger set. Punycode is Bootstring with particular parameter values appropriate for IDNA. For a more generic (but less efficient) Bootstring implementation, see Encode::Bootstring.

This module does not do any string preparation or mappings as specified by Nameprep. It does not do add any prefix or suffix, either. For higher-level handling of full Internationalised Domain Names, see Net::IDN::Encode.

AUTHOR

Top

Claus Färber <CFAERBER@cpan.org>

Previous versions written by Tatsuhiko Miyagawa <miyagawa@bulknews.net>

COPYRIGHT

Top

SEE ALSO

Top

Encode, Net::IDN::Punycode, RFC 3492 (http://www.ietf.org/rfc/rfc3492.txt)


Encode-Punycode documentation Contained in the Encode-Punycode distribution.

package Encode::Punycode;

use strict;
use utf8;
use warnings;

our $VERSION = '1.000';
$VERSION = eval $VERSION;

require Encode;
use base qw(Encode::Encoding);
__PACKAGE__->Define('Punycode', 'punycode');

use Net::IDN::Punycode();

sub encode {
  my($self, $string, $check) = @_;
  $string = Net::IDN::Punycode::encode_punycode($string);
  $_[1] = '' if $check;
  return $string;
}

sub decode {
  my($self, $string, $check) = @_;
  $string = Net::IDN::Punycode::decode_punycode($string);
  $_[1] = '' if $check;
  return $string;
}

sub mime_name {
  return undef;
};

sub perlio_ok { 
  return 0;
}

1;
__END__