繁体   English   中英

替换或避免 encodeURIComponent 或 encodeuri,encode,escape 将数据从客户端传递到服务器

[英]Replacement or avoid encodeURIComponent or encodeuri,encode,escape to pass data from client to server

考虑我有以下压缩数据:

Ả㠵堥䂢桥ƴېୠ⤡

我通过遵循 Java 脚本/jquery 发送这些类型的字符:

function callServer()
{
    var compressed = LZString.compressToUTF16(uncompressed64Data); 

    jQuery.ajax({
        url : "/RegisterServlet_2/servlet/Register",
        type : "POST",
        dataType: "json",
         data: {
                 img : compressed,
            },
        cache : false,
        async : false,
        success : function()
        {
        },
        error : function()
        {
        }
    });
}

通过自动发送,由于特殊字符和请求正文编码的数据如下所示:%E1%BA%A2%E3%A0%B5%E5%A0%A5%E4%82%A2%E6%A1%A5% C6%B4%DB%90%E0%AD

我的目标是减少带宽权重,因此我使用了压缩算法并减少了很多字符。 (请注意,我这里给出的是样本,但我使用的数据是巨大的!)

因此,我想发送特殊字符,就像它没有任何编码算法一样,或者即使我允许字符计数大小在编码后也不应该增加? 非常感谢任何帮助。 提前致谢

如果大小很重要,你最好去掉所有连续的空白(这可以安全地完成,除非 HTML 包含一个<pre> element/ style )。 然后,只替换重要字符:

var html = document.getElementById("html").innerHTML;
html = html.replace(/\s{2,}/g, '')   // <-- Replace all consecutive spaces, 2+
           .replace(/%/g, '%25')     // <-- Escape %
           .replace(/&/g, '%26')     // <-- Escape &
           .replace(/#/g, '%23')     // <-- Escape #
           .replace(/"/g, '%22')     // <-- Escape "
           .replace(/'/g, '%27');    // <-- Escape ' (to be 100% safe)
var dataURI = 'data:text/html;charset=UTF-8,' + html;

https://stackoverflow.com/a/9239272/209942

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM