在此前的一篇Blog(-R/G2SW )中,“-gMIS 吉密斯优化更新+分组项区段AddGroupBySeg/+复制AddByCopy等”, 我们提到“注册动作registerAct: 改进增加 Base62x.class.js”, 初尝跨编程语言、运行时环境进行数据交换的便利,这次也因着部署一个新的 -GWA2 的项目,需要在 -PHP 和 -Perl 中进行多字节非ASCII字符数据的传递,于是就推荐了 -Base62x , 这样 Base62x in Perl 的工作就排上日程,在两个周末的实验下,完成了 Base62x in Perl 的初个版本. 如下是一些使用细节,同时也可以在 -GitHub-Wadelau 上寻找获得, 或者直接访问 -Base62x .
- 面向对象编程OOP的 Base62x.pm
use Base62x;
my $base62x = Base62x->new();
my $str = “Hello World!\n”;
my $encoded = $base62x->encode($str);
$str = $base62x->decode($encoded);在 Perl 程序的开始,引入 Base62x.pm , 然后生成相应的对象实例,通过调用 该实例的 encode/decode 方法实现相应的编码与解码。
同 Base62x 的其他版本相通,实现了跨编程语言、运行时环境的数据安全交换。
同 Base62x的其他版本一样,Perl版本也实现了针对数字进制转换和ASCII快捷处理的相关方法。如,my $i = 100;
# treas $i as base 10 and transform it into Base62x
my $numInBase62x = $base62x->encode($i, 10);
# try to decode a Base62x num into base 10
$i = $base62x->decode($numInBase62x, 10);OOP的调用方式,适合进行循环内反复调用的使用场景,由于在实例化时,进行了环境变量的初始化而节省了后续重复动作。
. - 函数式编程的Base62x.pm
除了 OOP式的写法,Base62x.pm 还提供了函数式编程的调用方式,列如下。
use Base62x qw (base62x_encode base62x_decode);
my $str = “Hello World!\n”;
my $encoded = base62x_encode($str);
$str = base62x_decode($encoded);函数式编程适合单一次启动并运行的使用场景。
详细实现可以参考 Base62x.pm 的代码。
.
截止目前,Base62x 已经可以提供的编程语言版本包括 C, Java, PHP, JavaScript, Perl. 其中JavaScript 还有两个实现, Base62x.class.js 和 npm base62x.
Base62x: An alternative approach to Base64 for only-alphanumeric characters in output.
Base62x is an non-symbolic Base64 encoding scheme. It can be used safely in computer file systems, programming languages for data exchange, internet communication systems, and is an ideal substitute and successor of many variants of Base64 encoding scheme.
Base62x 是一种无符号的Base64编码方案。在计算机文件系统、编程语言数据交换、互联网络通信系统中可以安全地使用,同时是各种变种Base64编码方案的理想替代品、继任者。