使用base 40编码String的含义是什么?

时间:2012-09-09 14:20:27

标签: java compression redis base64 base32

我已经看到它建议Base 40编码可用于压缩字符串(在Java中发送到Redis实例FWIW)并且快速测试表明它对于我使用的一些数据比替代方案更有效我正在考虑; Smaz。

有没有理由更喜欢超过40的32或64编码?任何缺点,这样的编码可能是无损的吗?

1 个答案:

答案 0 :(得分:1)

40提供字母(可能是小写字母,除非你的应用程序大多数情况下倾向于使用大写字母)和36位数字,然后是标点符号和移位的四位数字。你可以通过使其余的一个转义使其无损,所以下一个或两个字符代表一个不在另一个39的字节。另一个好的方法是有一个移位锁定字符,在大小写之间切换,如果你倾向于使用大写字符串。

40是一个方便的基础,因为三个基数为40的数字很好地适合两个字节。 40 ^ 3(64000)是一个小于2 ^ 16(65536)的微生物。

您应该使用的内容取决于您的数据统计信息。