A Unicode encoding scheme suitable for name mangling
use Uni63;
my $enc = Uni63::enc('Leberkäse');
my $dec = Uni63::dec($enc);
The 62 alphanumeric ASCII characters encode themselves. A 63rd character _
is
used to mark escape sequences.
The escape character is followed by a single digit, indicating the number of
characters that encode the next Unicode codepoint. Contrary to the module name,
the codepoint is encoded in base-62 with digits 0..9
, a..z
, A..Z
.
The decoder does not validate its input:
-
An invalid character or an underscore that is not followed by a valid escape sequence will be passed through, thus re-encoding a decoded string may not round trip.
-
The numeric value of any escape sequence that follows the given scheme will be passed on to
chr
, even if the value lies outside the range of Unicode codepoints.
Development happens at GitHub. If you found a bug or have a feature request, use the issue tracker over there.
Copyright (C) 2015 by cygx@cpan.org
Distributed under the Boost Software License, Version 1.0