php를 사용하여 URL 문자열을 urlencoding하고 curl을 통해 phantomjs 스크립트로 전달하여 javascript를 사용하여 디코딩하려고합니다.자바 스크립트에서 URL 디코딩 문제가 발생했습니다.
나는으로 시작하고 다음를 urlencode() 함수에 의해 PHP 측에서
localhost:7788/hi+there%2Fhow+are+you
:로 전환됩니다
localhost:7788/hi there/how are you/
. 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'가 이것을해야한다고 본다.
처음에 '+'기호가있는 이유는 무엇입니까? –