我想傳遞一個參數到python cgi腳本,這個參數包含加號運算符。Python的CGI腳本,我不能通過'+'加運算符作爲參數
/cgi-bin/test.py?input=print%20"%20"%20"%20%20-+-\"
蟒蛇CGI腳本很簡單:
#!/usr/bin/python -w
import cgi
fs = cgi.FieldStorage()
print "Content-type: text/plain\n"
strE=fs.getvalue("input")
print strE
我的輸出是:
print " " " - -\"
我不明白爲什麼 '+' 加運算由空間取代, 我怎樣才能通過'+'加操作符?
編輯
@湯姆·安德森,回答我的問題,我想延長我的問題多一點。
我有一個調用獲取URL與參數的Java腳本函數:
<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>
是否有自動的內置函數替換所有的特殊字符我所需要的?
str = escapeStringToNativeUrl(str) ?
謝謝,很好的答案,我可以找到那些特殊字符的捷徑? – Michael 2012-07-28 08:22:10
我編輯了我的問題,是否有任何java-script中的函數將我的字符串轉換爲正確的url? – Michael 2012-07-28 08:33:21
空間是唯一獲得特殊待遇的人。對於其他任何事情,如果它是[未經保留的字符](http://tools.ietf.org/html/rfc3986#section-2.3),您可以按原樣使用它,如果不是,它需要進行百分比編碼。 – 2012-07-28 08:38:37