[英]Difference between escape(), encodeURI(), encodeURIComponent()
[英]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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.