URI::_punycode(3) User Contributed Perl Documentation URI::_punycode(3) NAME URI::_punycode - encodes Unicode string in Punycode SYNOPSIS use strict; use warnings; use utf8; use URI::_punycode qw(encode_punycode decode_punycode); # encode a unicode string my $punycode = encode_punycode('http://a.net'); # http://.net-xc8g $punycode = encode_punycode('bA1/4cher'); # bcher-kva $punycode = encode_punycode('aaaaaae'aae'); # ihqwcrb4cv8a8dqg056pqjye # decode a punycode string back into a unicode string my $unicode = decode_punycode('http://.net-xc8g'); # http://a.net $unicode = decode_punycode('bcher-kva'); # bA1/4cher $unicode = decode_punycode('ihqwcrb4cv8a8dqg056pqjye'); # aaaaaae'aae DESCRIPTION URI::_punycode is a module to encode / decode Unicode strings into Punycode , an efficient encoding of Unicode for use with IDNA . FUNCTIONS All functions throw exceptions on failure. You can "catch" them with Syn- tax::Keyword::Try or Try::Tiny. The following functions are exported by de- fault. encode_punycode my $punycode = encode_punycode('http://a.net'); # http://.net-xc8g $punycode = encode_punycode('bA1/4cher'); # bcher-kva $punycode = encode_punycode('aaaaaae'aae') # ihqwcrb4cv8a8dqg056pqjye Takes a Unicode string (UTF8-flagged variable) and returns a Punycode en- coding for it. decode_punycode my $unicode = decode_punycode('http://.net-xc8g'); # http://a.net $unicode = decode_punycode('bcher-kva'); # bA1/4cher $unicode = decode_punycode('ihqwcrb4cv8a8dqg056pqjye'); # aaaaaae'aae Takes a Punycode encoding and returns original Unicode string. AUTHOR Tatsuhiko Miyagawa is the author of IDNA::Punycode which was the basis for this module. SEE ALSO IDNA::Punycode, RFC 3492 , RFC 5891 COPYRIGHT AND LICENSE This library is free software; you can redistribute it and/or modify it un- der the same terms as Perl itself. perl v5.44.0 2025-09-17 URI::_punycode(3)