我试图缩短要嵌入URL中的UUID值(以UUID而非字符串形式存储在数据库中)。我知道URL的Base64,但尝试查看是否可以使用破折号和下划线字符。 所以我想将UUID转换为base62。经过大量的搜寻后,我发现:
这没有标准(例如RFC2045),对吗?
最重要的是,它没有适当的实现。我发现了很多有关如何执行此操作的摘录,但有一些注释说明“这是一个幼稚的实现”或其他内容。是否有适当的实现方式(我不介意确切的解释,只要正确完成映射就应如何完成)?
Apache Commons Codec和Guava中有一些基类可以针对Base32和Base64进行扩展,但是我发现对Base62进行扩展并不容易。甚至有可能做到这一点(考虑到映射根本不同的事实)?
谢谢。
答案 0 :(得分:3)
您可能想尝试以下库:https://github.com/Devskiller/friendly-id
FriendlyID库将给定的UUID(具有36个字符)转换为基于Base62(最多22个字符)的URL友好ID(“ FriendlyID”),如下例所示:
UUID Friendly ID c3587ec5-0976-497f-8374-61e0c2ea3da5 -> 5wbwf6yUxVBcr48AMbz9cb | | 36 characters 22 characters or less
此外,该库允许:
- 从FriendlyID转换回原始UUID;和
- 创建一个新的随机FriendlyID