Home

URI::_punycode(3pm)

URI::_punycode(3pm)User Contributed Perl DocumentationURI::_punycode(3pm)

URI::_punycode - encodes Unicode string in Punycode

  use strict;  use warnings;  use utf8;  use URI::_punycode qw(encode_punycode decode_punycode);  # encode a unicode string  my $punycode = encode_punycode('http://☃.net'); # http://.net-xc8g  $punycode = encode_punycode('bücher'); # bcher-kva  $punycode = encode_punycode('他们为什么不说中文'); # ihqwcrb4cv8a8dqg056pqjye  # decode a punycode string back into a unicode string  my $unicode = decode_punycode('http://.net-xc8g'); # http://☃.net  $unicode = decode_punycode('bcher-kva'); # bücher  $unicode = decode_punycode('ihqwcrb4cv8a8dqg056pqjye'); # 他们为什么不说中文

URI::_punycode is a module to encode / decode Unicode strings into Punycode <https://tools.ietf.org/html/rfc3492>, an efficient encoding of Unicode for use with IDNA <https://tools.ietf.org/html/rfc5890>.

All functions throw exceptions on failure. You can "catch" them with Syntax::Keyword::Try or Try::Tiny. The following functions are exported by default.

  my $punycode = encode_punycode('http://☃.net');  # http://.net-xc8g  $punycode = encode_punycode('bücher'); # bcher-kva  $punycode = encode_punycode('他们为什么不说中文') # ihqwcrb4cv8a8dqg056pqjye

Takes a Unicode string (UTF8-flagged variable) and returns a Punycode encoding for it.

  my $unicode = decode_punycode('http://.net-xc8g'); # http://☃.net  $unicode = decode_punycode('bcher-kva'); # bücher  $unicode = decode_punycode('ihqwcrb4cv8a8dqg056pqjye'); # 他们为什么不说中文

Takes a Punycode encoding and returns original Unicode string.

Tatsuhiko Miyagawa <[email protected]> is the author of IDNA::Punycode which was the basis for this module.

IDNA::Punycode, RFC 3492 <https://tools.ietf.org/html/rfc3492>, RFC 5891 <https://tools.ietf.org/html/rfc5891>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

2022-11-21perl v5.36.0