Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 请求参数丢失加号_Java_Javascript_Html_Url_Escaping - Fatal编程技术网

Java 请求参数丢失加号

Java 请求参数丢失加号,java,javascript,html,url,escaping,Java,Javascript,Html,Url,Escaping,我正在编辑一个搜索表单,并试图防止数据库中出现特殊字符。在JSP搜索表单中,(multiselect)下拉列表允许用户选择将在查询中使用的描述(注意:描述是字符串列表): +在URL中表示“空格”。将其替换为%2B。例如,您可以在编写descriptionsUrlAddition之后执行此操作 descriptionsUrlAddition = descriptionsUrlAddition.replace("+", "%2B"); 您应该在前端使用javascript encodeuri函

我正在编辑一个搜索表单,并试图防止数据库中出现特殊字符。在JSP搜索表单中,(multiselect)下拉列表允许用户选择将在查询中使用的描述(注意:描述是字符串列表):


+
在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()。