#!/usr/bin/perl -w

use MIME::Base64 qw(decode_base64 decode_base64url encode_base64url);
use URI::Escape qw(uri_escape_utf8 uri_unescape);

my $record = decode_base64('BAoIMTIzNDU2NzgECAgIEQxNQVJDOjpSZWNvcmQDAwAAAAQCAQAAAAQRC01BUkM6OkZpZWxkAwYA
AAAXASAFAAAAX2luZDEEAgAAAAAJAAAAX3dhcm5pbmdzBAIUAAAAFwEyFwN5a2wXATcXAi0xFwFh
FwdKT0VfSk9FFwFiFwdKT0VfS09OFwFjFwNBSUsXAW8XFUpPRUFJSyA4NC43MUrDg8KETiBUw4XC
oEkXAXAXDDE2N04wODYxODUyNhcBdhcENy4wMBcBeBcJbGFoam9pdHVzFwF5FwJLSQoAAABfc3Vi
ZmllbGRzFwEgBQAAAF9pbmQyCMKAEQAAAF9pc19jb250cm9sX2ZpZWxkFwM5NTIEAAAAX3RhZwcA
AABfZmllbGRzBAIAAAAACQAAAF93YXJuaW5ncwoYICAgICAgICAgICAgICAgICAgICAgICAgBwAA
AF9sZWFkZXI=
');

print "Original:\n".sprintf("%v02X", $record)."\n---\n";


# This is a problem
my $decoded = uri_unescape(uri_escape_utf8($record));
print "uri_escape:\n".sprintf("%v02X", $decoded)."\n---\n";


# This is good
my $b64url = decode_base64url(encode_base64url($record));
print "b64url:\n".sprintf("%v02X", $b64url)."\n";
