使用 base62 和 base36 编码数字

Encoding numbers with base62 and base36

目前我有一些代码可以将数字转换成 base62 格式

这很好用,但是当将数据放入数据库时​​,可能会得到两个相同的 base62 字符串(但大小写不同)

eg. SsUTF1 and Ssutf1

要解决这个问题,base36 是 base62 的可行替代方案吗?我对此非常有限的理解是 base36 不会产生相同的字符串,但另一方面,我假设更大数字的字符长度在 base 36 上可以比 base 62 更长?

如果数据库中已有 base62 字符串,切换到 base36 后是否可能以重复项结束?鉴于字符串的基数永远不会相同。

鉴于基数不同,它base36表示总是不同的。如果您使用区分大小写或二进制比较方法对其进行比较,则 base62 也是如此。

此外,base36 表示相同的数字可能比 base62 长。假设我们有 10 个职位,这意味着我们可以代表:

  • base36 36E10 = 3 656 158 440 062 976种可能性
  • base62 62E10 = 839 299 365 868 340 224种可能性

希望对您有所帮助。