1

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

有什么理由比 40 更喜欢 base 32 或 64 编码吗?有什么缺点,像这样的编码可能是无损的吗?

4

1 回答 1

1

40 提供字母(可能是小写,除非您的应用程序在大多数情况下倾向于使用大写)和数字 36,然后再提供四个用于标点和移位。您可以通过将剩余的一个转义来使其无损,以便接下来的一个或两个字符表示一个不在其他 39 中的字节。还有一个好方法是使用一个在大写和小写之间切换的 shift-lock 字符,如果你往往有大写字符的字符串。

40 是一个方便的基数,因为三个基数为 40 的数字非常适合两个字节。40^3 (64000) 略小于 2^16 (65536)。

你应该使用什么取决于你的数据统计。

于 2012-09-09T18:05:15.117 回答