无损压缩方法在base64编码之前缩短字符串使其缩短?

时间:2010-11-10 13:01:05

标签: javascript compression base64 huffman-code lzw

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

PS;前一段时间我在学校读到过Huffman和Lempel-Ziv,我记得很享受LZW:)

编辑:

找到解决方案;看起来像rawStr => utf8Str => lzwStr => base64Str是要走的路。我正在进一步努力在utf8和lzw之间实现huffman压缩。到目前为止的问题是,当编码为base64时,太多的字符变得很长。

2 个答案:

答案 0 :(得分:5)

结帐this answer。它提到了LZW压缩/解压缩的功能(通过http://jsolait.net/,特别是http://jsolait.net/browser/trunk/jsolait/lib/codecs.js)。

答案 1 :(得分:1)

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

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