12

刚刚构建了一个用于预览 HTML 文档的小型 Web 应用程序,该应用程序生成 URL:s,其中包含 base64 编码数据中的 HTML(以及所有内联 CSS 和 Javascript)。问题是,URL:s 很快就会变得有点长。首先压缩字符串而不丢失数据的“事实上的”标准方式(最好是Javascript )是什么?

附言; 前段时间我在学校读到 Huffman 和 Lempel-Ziv,我记得我真的很喜欢 LZW :)

编辑:

找到解决方案;似乎 rawStr => utf8Str => lzwStr => base64Str 是要走的路。我正在进一步致力于在 utf8 和 lzw 之间实现霍夫曼压缩。到目前为止的问题是,当编码为 base64 时,太多的字符会变得很长。

4

2 回答 2

5

看看这个答案。它提到了 LZW 压缩/解压缩的功能(通过http://jsolait.net/,特别是http://jsolait.net/browser/trunk/jsolait/lib/codecs.js)。

于 2010-11-10T13:25:19.050 回答
1

你将很难在一个 URL 上获得非常多的压缩,它们太短并且不包含足够的冗余信息来从 Huffman / LZW 样式算法中获得很多好处。

如果您对可能的 URL 的空间有限制(例如,所有内容往往位于同一组文件夹中),您可以对 URL 的某些部分进行硬编码以在客户端上进行扩展 - 即作弊。

于 2010-11-10T13:07:01.027 回答