Javascript正确编码

Javascript right encoding

本文关键字:编码 Javascript      更新时间:2023-09-26

我有这个:

var passwordpolicies = {
    shouldbecomplex: shouldbecomplex,
    shouldnotbeusername: shouldnotbeusername,
    shouldnotincludeusercharacters: shouldnotincudeusercharacters,
    passwordminage: passwordminage,
    passwordmaxage: passwordmaxage,
    passwordminlength: passwordminlength,
    passwordmaxlength: passwordmaxlength,
    passwordchronic: passwordchronic
};
var iprange = {
    enableiprange: enableiprange,
    iplist: ipList
};

但我需要明白:我该怎么做?

iprange=%7B%22enableiprange%22%3Atrue%2C%22iplist%22%3A%5B%221556.68.217%22%2C%22156.187.504%22%5D%7D&密码策略=%7B%22应该是复杂的%22%3True%2C%22不应该是用户名%22%3False%2C%2应该不包括密码字符%22%3Fause%2C%2C%20密码最小值%22%3A-1%2C%23密码最小长度%22%3A6%2C%26密码最大长度%22 3A-1%2C%28密码慢性%22%3A-1%7 D

当然,我在对象内部的变量中有正确的值。

我对编码不太熟悉,并尝试过encodeURIComponentjQuery.param,但未成功。

执行时:encodeURIComponent({iprange, passwordpolicies})我得到这个:

%5对象%20对象%5D

执行时:jQuery.param( {iprange, passwordpolicies} )我得到这个:

iprange%5启用iprange%5D=false&iprange%5 iplist%5D%5B%5D=155.56.68.217&iprange%5 iplist%5D%5B%5D=156.1875.04&密码策略%5应该变得复杂%5D=true&密码策略%5不应为用户名%5D=false&密码策略%5不应包含密码用户字符%5D=false&密码策略%5Passwordminage%5D=&密码策略%5密码最大值%5D=&密码策略%5密码最小长度%5D=6&密码策略%5密码最大长度%5D=&密码策略%5密码慢性%5D=

执行此操作时:encodeURIComponent(JSON.stringfy(myObj))我得到这个:

%7B%22iprange%22%3A%7B%22启用范围%22%3Afalse%2C%22iplist%22%3A%5B%221556.68.217%22%2C%22156.187.50.4%22%5D%7D%2C%22密码策略%22%3A%7%7B%22应该是复杂的%22%3Atrue%2C%2不应该是用户名%22%3Afalse%2C%2应该不包括用户字符%22%3Afalse%2C%22C%22密码minage%22%3A%22%2C%22密码最大值%22%3A%22密码最小长度%22%3A%226%22%2C%22密码最大长度%22%3A%22%22%22%2C%22密码慢性%22%3A%22%22%7D%7D

解决方案是像Andreas建议的那样使用JSON.stringify()encodeURIComponent()

"iprange=" + encodeURIComponent(JSON.stringify(iprange)) + "&passwordpolicies=" + encodeURIComponent(JSON.stringify(passwordpolicies));