Java 请求参数丢失加号
我正在编辑一个搜索表单,并试图防止数据库中出现特殊字符。在JSP搜索表单中,(multiselect)下拉列表允许用户选择将在查询中使用的描述(注意:描述是字符串列表):Java 请求参数丢失加号,java,javascript,html,url,escaping,Java,Javascript,Html,Url,Escaping,我正在编辑一个搜索表单,并试图防止数据库中出现特殊字符。在JSP搜索表单中,(multiselect)下拉列表允许用户选择将在查询中使用的描述(注意:描述是字符串列表): +在URL中表示“空格”。将其替换为%2B。例如,您可以在编写descriptionsUrlAddition之后执行此操作 descriptionsUrlAddition = descriptionsUrlAddition.replace("+", "%2B"); 您应该在前端使用javascript encodeuri函
+
在URL中表示“空格”。将其替换为%2B
。例如,您可以在编写descriptionsUrlAddition
之后执行此操作
descriptionsUrlAddition = descriptionsUrlAddition.replace("+", "%2B");
您应该在前端使用javascript encodeuri函数对参数进行编码。对于javascript,您应该使用或。例如:
var uri = "fj74cvg+fd1==ee";
var res = encodeURIComponent(uri);
<?php
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>
res将被编码为“fj74cvg%2Bfd1%3D%3Dee”
对于php,您可以使用。例如:
var uri = "fj74cvg+fd1==ee";
var res = encodeURIComponent(uri);
<?php
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>
这些函数将替换字符串中用作url一部分的任何特殊字符。您如何实现这一点?@Rachel G.只需将url字符串中的所有
+
符号替换为%2B
。一旦您的URL被合成并作为字符串,您就可以使用string
的replace()
方法。添加示例。添加代码(escape(descriptionSelectBox.options[i].value)。替换(“+”,“%2B”))到您的答案中,我会将其标记为正确。谢谢=)@Rachel G.,更好的是,在整个字符串中替换它。这样会更有效率,因为您只需调用一次replace()
。我没有工作,我有一个带有+符号的url,将它们替换为%2B,但没有任何用处。encodeURI()
不会将+
更改为%2B
。只有encodeURIComponent()。