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'); # 他们为什么不说中文
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.