【问题标题】:Text compression in JavaScriptJavaScript 中的文本压缩
【发布时间】:2011-07-22 14:13:33
【问题描述】:

是否有任何图书馆/等。在 JavaScript 中实现轻量级文本压缩?

我的真正目标是稍微缩短一些文本,使其一目了然。 (它不需要提供安全性——文本将为用户显示。)理想情况下,可以调整压缩以仅输出查询字符

[-._~!$&'()*+,;=:@/?a-zA-Z0-9]

所以它可以在 URL 中传递。 (实际上,这很重要——如果使用其他字符,则必须对它们进行百分比编码,这可能会使文本大于原始字符。)当然,如果需要,可以对稀有字符进行百分比编码。

有什么想法吗?如果做不到这一点,建议制作一个简单的?压缩不一定很好,但较短的 URL 会更好。要压缩的文本应该是英文句子:主要是小写字母、空格和标点符号,偶尔会有大写字母、数字和换行符。

【问题讨论】:

  • 与其压缩查询参数,不如试试 URL 缩短服务。
  • 压缩短文本并没有什么好处...
  • 假设您要压缩英语句子,并且大多数句子中 95% 或更多的字符都包含在您的可接受字符集中,除了去除空格之外,您可能不会获得太多收益。你来这里的动机是什么?这可能有助于确定合适的方法。
  • @Ondra Žižka:考虑到我的用例,并非如此。如果我不打算压缩,我会使用 ROT13 来进行轻度混淆;除此之外的任何缩短都只是一个奖励。
  • Chrome 80 将提供 CompressionStream API,见blog.chromium.org/2019/12/…

标签: javascript compression


【解决方案1】:

我发现lz-string 非常适合我的需求。它可以快速压缩和解压缩文本,并且可以针对原始位、有效的 Unicode 字符或 Base64。也许它对其他人有用?

【讨论】:

  • 我们应该限制使用这个 lz 库的压缩字符串的长度吗?比如把我的长字符串压缩成长度为16, 32 0r 64的短字符串,这里可以吗?
【解决方案2】:

我也在考虑霍夫曼压缩。这个 javascript 库非常好:http://rumkin.com/tools/compression/compress_huff.php。它有一个真正节省空间的方法来压缩和解压缩每个字符。也许您也想查找哥伦布代码。它的压缩率与霍夫曼差不多,但 IMO 更容易实现。不要问我一个例子。

【讨论】:

    猜你喜欢
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2019-06-17
    • 2019-01-03
    • 1970-01-01
    • 2010-11-27
    相关资源
    最近更新 更多