我正在创建一个网站更新程序。我正在使用AJAX将字符串传递给CGI。
我有一个问题,如果我的字符串包含'&'由于CGI将参数/变量用“&”分隔,因此它们被错误地分开了字符
所以如果我寄这个:
http://mywebsite.com?user=blah&mystring=I_am_happy_&_sad
当我在python脚本中获取变量时,变量mystring将不正确:
input_data = cgi.FieldStorage()
user = input_data.getvalue( "user" ) # correctly = "blah"
mystring = input_data.getvalue( "mystring" ) # incorectly = "I am happy "
# mystring should = "I am happy & sad"
现在我在Javascript中使用自己的post()函数发送AJAX请求,所以我不使用jQuery或其他任何东西。是否有一种简单的方法通过CGI发送包含'&'的字符串在它还是我需要编写自己的函数来解析字符串&替换'&'与其他东西争吵?
答案 0 :(得分:4)
您需要对&符号进行URL编码:
http://mywebsite.com?user=blah&mystring=I_am_happy_%26_sad
为此,Javascript提供encodeURIComponent(),Python提供urllib.quote()。