Javascript URL 散列参数的字符串压缩

Javascript string compression for URL hash parameter

我希望在不超过 URL 个字符限制的情况下将大量数据存储在 URL 哈希参数中。

是否有任何传统的压缩字符串长度的方法,然后可以在另一个页面加载时对其进行解码?

我见过 LZW encoding 用于类似的解决方案,但是特殊字符是否适用于此用途?

LZW 编码技术上 有效;您只需要将 LZW 编码的二进制文件转换为 URL-safe base64,这样输出就不会包含特殊字符。 Here's an MDN article on base64 in JavaScript; URL-base64 的安全变体只是将 + 替换为 -,将 / 替换为 _。当然,您不太可能通过这样做将字符串的大小减少很多,除非您要存储的数据非常可压缩。

你可以看看smaz or shoco,它是为压缩短字符串而设计的。大多数压缩方法在 URL 长度限制之后才真正开始运行,因此如果您希望获得任何收益,则需要针对这种情况使用专门的压缩器。然后,您可以使用 Base 64 之类的方案或使用所有 URI 安全字符的更高效编码对二进制结果进行编码。