将 96 位整数转换为字符串的最紧凑方法是什么(Base64 的替代方法)
正如您可能已经猜到的,这是为了生成短 URL。
将 96 位整数压缩为 URL 友好的短字符串的最佳方法是什么? Base64 是最好的方法还是有其他选择?
As you might have guessed, this is for generating short URLs.
What's the best way to compact a 96-bit integer into a URL friendly short string? Is Base64 the best way or are there any alternatives?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我会为此使用 base64。它可以保护您免受非法字符的侵害,并生成“看起来”有点像人类可读的字符串。
I would use base64 for this. It protects you from illegal characters and generates string that 'look' a little like being human-readable.
你可以计算位总和
you could calculate the bit sum
一种简单的方法是修改 Base 64 编码。原始的 Base 64 不起作用,因为它使用加号 (+) 和斜杠 (/) 字符,这些字符在 URL 中具有特殊含义。
但是,如果您用减号 (-) 和下划线 (_) 字符替换这些字符,您就有了一个很好的解决方案。
如果我没记错的话,URL 安全字符有 65 或 66 个。因此,修改后的 Base 64 非常接近最佳值。
An easy approach is a modified Base 64 encoding. The original Base 64 won't work because it uses the plus (+) and slash (/) character, which have a special meaning in URLs.
But if you replace these characters with a minus (-) and underscore(_) character, you have a nice solution.
If I'm not mistaken, there are 65 or 66 URL-safe characters. So a modified Base 64 comes pretty close to the optimum.
如果将其转换为十六进制呢?
What about converting it to hexadecimal?