Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.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
Javascript Python CGI脚本,我无法通过'+';加号运算符作为参数_Javascript_Python_Cgi_Url Parameters - Fatal编程技术网

Javascript Python CGI脚本,我无法通过'+';加号运算符作为参数

Javascript Python CGI脚本,我无法通过'+';加号运算符作为参数,javascript,python,cgi,url-parameters,Javascript,Python,Cgi,Url Parameters,我试图将一个参数传递给python cgi脚本,该参数包含加号运算符 /cgi-bin/test.py?input=print%20"%20"%20"%20%20-+-\" python cgi脚本很简单: #!/usr/bin/python -w import cgi fs = cgi.FieldStorage() print "Content-type: text/plain\n" strE=fs.getvalue("input") print strE 我的输出是: print

我试图将一个参数传递给python cgi脚本,该参数包含加号运算符

 /cgi-bin/test.py?input=print%20"%20"%20"%20%20-+-\"
python cgi脚本很简单:

#!/usr/bin/python -w
import cgi
fs = cgi.FieldStorage()

print "Content-type: text/plain\n"
strE=fs.getvalue("input")
print strE
我的输出是:

 print " " "  - -\"
我不明白为什么“+”加运算符被空格代替, 如何传递“+”加号运算符

编辑

@汤姆·安德森回答了我的问题,我想把我的问题扩展一点

我有一个java脚本函数,它调用获取带有参数的url:

            <script type="text/javascript">

            function PostContentEditable(editableId,targetOutput)
            {
                        var texthtml = document.getElementById(editableId).innerHTML
                        var tmp = document.createElement("DIV");
                        tmp.innerHTML = texthtml ;
                        var str= tmp.textContent||tmp.innerText;

                        var xmlhttp;
                        if (str.length == 0){
                            document.getElementById(targetOutput).innerHTML = "";
                            return;
                        }
                        if(window.XMLHttpRequest){
                            xmlhttp=new XMLHttpRequest();
                        }
                        else{
                            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                        }
                        xmlhttp.onreadystatechange=function(){
                            if (xmlhttp.readyState==4 && xmlhttp.status==200){
                                 document.getElementById(targetOutput).innerHTML=xmlhttp.responseText;
                            }
                        }

                        xmlhttp.open("GET","../cgi-bin/exercise.py?input="+str,true);
                        xmlhttp.send();
            }
            </script>

在URL的查询部分,
+
是一个表示空格的特殊代码

这是因为HTML规范中关于表单的部分指定了。在该编码中

因此,Python正确地解码了您的输入

如果你想通过一个实际的加号,你需要把它作为
%2B


在JavaScript中,我相信。

在URL的查询部分,
+
是一种表示空格的特殊代码

这是因为HTML规范中关于表单的部分指定了。在该编码中

因此,Python正确地解码了您的输入

如果你想通过一个实际的加号,你需要把它作为
%2B


我相信是用JavaScript编写的。

谢谢,回答得很好,我可以在哪里找到这些特殊字符的快捷方式?我已经编辑了我的问题,java脚本中是否有任何函数可以将我的字符串传输到正确的url?空格是唯一得到特殊处理的函数。对于其他所有内容,如果是一个,你可以按原样使用,如果不是,则需要进行百分比编码。谢谢,你为我节省了一些时间我不是JS专家,但其他人已经回答了,所以我添加了一个链接到他的答案。谢谢,回答得很好,我可以在哪里找到这些特殊字符的快捷方式?我已经编辑了我的问题,java脚本中是否有任何函数可以将我的字符串传输到正确的url?空格是唯一得到特殊处理的函数。对于其他内容,如果它是一个,你可以使用它,如果不是,它需要进行百分比编码。谢谢,你为我节省了一些时间我不是JS专家,但其他人已经回答了,所以我添加了一个链接到他的答案。
  str = escapeStringToNativeUrl(str) ?