我正在使用 php 对 url 字符串进行 urlencoding,然后通过 curl 将其传递给 phantomjs 脚本,在该脚本中我试图使用 javascript 对其进行解码。
我开始:
localhost:7788/hi there/how are you/
变成:
localhost:7788/hi+there%2Fhow+are+you
在 urlencode() 函数的 php 端。
在 phantomjs 方面,我有:
// Create serever and listen port
server.listen(port, function(request, response) {
function urldecode(str) {
return decodeURIComponent((str+'').replace(/\+/g, '%20'));
}
// Print some information Just for debbug
console.log("We got some requset !!!");
console.log("request method: ", request.method); // request.method POST or GET
console.log("Get params: ", request.url); //
url= urldecode(request.url);
//-- Split requested params
var requestparams = request.url.split('/');
console.log(urldecode(requestparams[1]));
console.log(urldecode(requestparams[2]));
控制台的输出是:
.....
request method: GET
Get params: /hi%2Bthere/how%2Bare%2Byou
hi+there
how+are+you
为什么“+”号不替换为空格?我正试图摆脱它们,在我看来,函数 'urldecode' 应该这样做。