考虑我压缩数据如下:
一个㠵堥䂢桥ƴېୠ⤡
我通过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
我的目标是我想减少带宽权重,因此我使用了压缩算法并减少了很多字符。 (请注意,这里给出的是样本,但我使用的数据很大!)
因此我想发送特殊字符,就像它没有任何编码算法一样,或者即使我允许字符计数大小不应该在编码后增加? 任何帮助非常感谢。提前致谢
答案 0 :(得分:0)
如果大小很重要,则最好去除所有连续的空格(除非HTML包含<pre>
元素/ 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;