1

我有一个通过 mailto 提交到电子邮件服务器的表单。

如您所知,mailto 内容有一个限制,因为它超出了 URL 字符限制,因此无法正常工作。

我开发了一些特定于域的自定义数据压缩,但仍然不够(如果所有字段都被填满,它将突破限制,这很罕见......但罕见对客户来说已经足够糟糕了。永远不会更好。 )。

我找到了 Lempel–Ziv–Welch 算法(http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Welch)并得出结论,它可以让我节省 40% 的平均长度.

不幸的是,我当然需要调用 encodeURIComponent 将其发送到 mailto,并且由于 LSW 算法将返回许多 URL 不受支持的字符,这实际上会使 URL 编码后变得更糟。

在您告诉我使用服务器端语言向服务器发布帖子会更容易之前,让我告诉您这是一个非常独特的情况,表单必须通过客户端应用程序通过电子邮件提交,因为电子邮件是最终用户与外界联系的唯一途径...

那么,你知道有什么方法可以有效地压缩数据而不用 encodeURIComponent 破坏它吗?

或者有没有办法在不通过浏览器的情况下将内容发送到 mailto?

我已经看到了一些使用 ActiveX 和其他东西打开 Outlook 的方法,但这是特定于浏览器/电子邮件客户端的。

我还检查了我使用javascript将表单信息保存在文件中的选项......但是应用程序用户,好吧,我们只是说他们根本不是专家,据我所知,他们可能无法附加电子邮件。(是的,他们就是那么糟糕)

因此,我寻找最简单的选项,其中用户参与度几乎为 0,结果是与表单数据一起发送的电子邮件,所有这些都没有服务器端语言,如果适用,还带有压缩算法。

非常感谢你的帮助 !

4

1 回答 1

1

您将很难“从不”进行压缩,因为总会有压缩器扩展而不是压缩的字符串。(压缩的基本数学性质。)

话虽如此,根据输入的长度,有比 LZW 更好的压缩器。您应该尝试zliblzma。然后需要仅使用允许的 URL 字符对这些二进制输出进行编码。

于 2013-11-05T17:27:51.153 回答