Javascript 向mailto发送ascii字符而不达到URL限制的最有效方法
我有一个表格是通过mailto提交给电子邮件服务器的 正如您所知,mailto内容有一个限制,因为它超过了URL字符的限制,所以无法正常工作 我开发了一些特定于领域的自定义数据压缩,但它仍然不够(如果所有字段都已填充,它将突破限制,这是罕见的……但对于客户端来说,罕见已经足够糟糕了。再好不过了) 我找到了Lempel–Ziv–Welch算法()并得出结论,它可以让我节省平均长度的40% 不幸的是,我当然需要调用encodeURIComponent将其发送到mailto,因为LSW algorightm将返回许多URL不支持的字符,这实际上会使URL编码后的情况变得更糟 在您告诉我使用服务器端语言向服务器发送帖子更容易之前,让我告诉您,这是一种非常独特的情况,必须通过客户端应用程序通过电子邮件提交表单,因为电子邮件是最终用户与外部世界连接的唯一方式 那么,您知道有什么方法可以在不破坏数据的情况下有效地压缩数据吗 或者有没有一种方法可以不通过浏览器将内容发送到mailto 我见过一些使用ActiveX等打开Outlook的方法,但这是非常特定于浏览器/电子邮件客户端的 我还检查了使用javascript将表单信息保存到文件中的选项。。。但是应用程序用户是,我们只能说他们根本不是专家,而且据我所知,他们可能无法附加电子邮件。(是的,有那么糟糕) 因此,我寻找一个最简单的选项,其中用户参与几乎为0,结果是发送一封包含表单数据的电子邮件,所有这些都没有服务器端语言,如果适用,还有一个压缩算法Javascript 向mailto发送ascii字符而不达到URL限制的最有效方法,javascript,url,compression,mailto,url-encoding,Javascript,Url,Compression,Mailto,Url Encoding,我有一个表格是通过mailto提交给电子邮件服务器的 正如您所知,mailto内容有一个限制,因为它超过了URL字符的限制,所以无法正常工作 我开发了一些特定于领域的自定义数据压缩,但它仍然不够(如果所有字段都已填充,它将突破限制,这是罕见的……但对于客户端来说,罕见已经足够糟糕了。再好不过了) 我找到了Lempel–Ziv–Welch算法()并得出结论,它可以让我节省平均长度的40% 不幸的是,我当然需要调用encodeURIComponent将其发送到mailto,因为LSW algorig
非常感谢你的帮助 压缩很难做到“从不”,因为压缩程序总是会扩展字符串而不是压缩字符串。(压缩的基本数学性质。)
话虽如此,根据输入的长度,有比LZW更好的压缩器。你应该试试看。然后,需要仅使用允许的URL字符对这些字符串的二进制输出进行编码。压缩时很难达到“从不”,因为压缩器总是会扩展而不是压缩字符串。(压缩的基本数学性质。)
话虽如此,根据输入的长度,有比LZW更好的压缩器。你应该试试看。然后,这些文件的二进制输出只需要使用允许的URL字符进行编码。谢谢您的回答。事实上,LZW可以得到比原始数据更大的数据。这些链接很有趣,但在javascript中可能不适用于编码,除非我错过了一些东西,我会很快看一看,看看我能做些什么。我会在javascript中寻找等价的库。我找到了LZMA的一个实现,但我不确定我是否理解。这将返回一个数字数组。当然,这个数组比原始字符串长得多,所以我应该用这个数组吗?起初我以为这是一个新字符串的字符码数组,但显然不是这样,因为有负数。。。有任何提示标记吗?显然我理解这个保存内容的字节数,但这不是我的意图。我想保存要发送到电子邮件客户端的字符。。。我想我应该严格搜索结果为字符串的算法。将继续我的研究…所有的压缩器将产生二进制数据。您需要使用base64之类的工具将二进制文件转换为可读字符,这将扩展数据。看,谢谢你的回答。事实上,LZW可以得到比原始数据更大的数据。这些链接很有趣,但在javascript中可能不适用于编码,除非我错过了一些东西,我会很快看一看,看看我能做些什么。我会在javascript中寻找等价的库。我找到了LZMA的一个实现,但我不确定我是否理解。这将返回一个数字数组。当然,这个数组比原始字符串长得多,所以我应该用这个数组吗?起初我以为这是一个新字符串的字符码数组,但显然不是这样,因为有负数。。。有任何提示标记吗?显然我理解这个保存内容的字节数,但这不是我的意图。我想保存要发送到电子邮件客户端的字符。。。我想我应该严格搜索结果为字符串的算法。将继续我的研究…所有的压缩器将产生二进制数据。您需要使用base64之类的工具将二进制文件转换为可读字符,这将扩展数据。看见