除了 base64 URL 还有什么更短的适合编码二进制放在 URL 中的算法?

139 天前
 drymonfidelia
2150 次点击
所在节点    程序员
13 条回复
Puteulanus
139 天前
先用 gzip 之类的压一下再 base64 ?
drymonfidelia
139 天前
@Puteulanus 之前实验过如果原文不是很长,gzip 后会变得更长
retanoj
139 天前
base64 、base32 、base16 、base58 、base91 、base92 、base36 、base62 、base85 、base128

讲道理号越高,编码的“压缩”效果会越好吧
wjr2012
139 天前
存在数据库中,短哈希用于 URL ,访问时跳转到实际 URL 。
rekulas
139 天前
据我所知没有,base64 是 3 字节>>4 字符,已经是目前效率最高的方式了,主要 ascii 码表里很多控制符和不可见字符串,只能做到 64 。。
liuidetmks
139 天前
@Puteulanus gzip 被人投一些炸弹,服务器会爆炸吧
可见字符也就这么多,base64 已经足够高效了。

不要提前优化
rekulas
139 天前
上面说的 base85 试了下确实存储效率更高,但是有些字符对 url 传输不友好,同理还有个 base91 的。。
opengps
139 天前
考虑换思路解决不?平常这类问题很多都是靠短网址来压缩长度实现二维码清晰度提高的
UxwVI042kEc5pNx6
139 天前
@drymonfidelia zlib 可能比 gzip 好一点?
gzip 至少要大于 56 个字符原文才比编码短;
zlib 至少 40 个字符原文才比编码短。
或者考虑混合使用? 30 个字符以内直接 base64 ,超过 30 用 zlib ,只是提供一下思路。
BG7ZAG
139 天前
base16 短一点,也没有/ = 符号
Dragonphy
139 天前
https://sqids.org/
非常短,只有 6 位字符
yolee599
138 天前
base64 会将很多重复的,有规律的数据也编码了,可以将这部分数据进行压缩再编码,压缩算法可以使用 bsdiff ,Hdiffpatch ,Xdelta……这种差分算法
augustheart
138 天前
短文本压缩,当然是 lz77 系列啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1053915

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX