如何在url中将特殊字符作为查询字符串传递

时间:2013-06-16 09:35:22

标签: c# javascript

我试图在url中将特殊字符作为查询字符串传递,作为GET请求的一部分。我在javascript函数中构造该字符串。

var queryString = "list=ABC-48+12&level=first";

然后我将字符串附加到url作为请求的一部分,该请求转到struts动作类。在动作类中,我将“list”值设为"ABC-48 12",不传递"+"个字符。 如何在字符串中传递特殊字符作为url的一部分并返回java类?

请告诉我。

感谢。

2 个答案:

答案 0 :(得分:11)

您应该使用encodeURIComponent函数对其进行网址编码:

var queryString = 
    "list=" + encodeURIComponent("ABC-48+12") + 
    "&level=" + encodeURIComponent("first");

此函数将负责正确编码查询字符串参数值:

list=ABC-48%2B12&level=first 

答案 1 :(得分:-2)

你需要使用一个正则表达式,将全局选项设置为第一个参数而不是字符串:(在正则表达式中,“+”是一个特殊字符,因此我们必须用反斜杠转义它。)

safeQueryString = safeQueryString.replace(/ + / g,'%2B');