28

I have a html text. I had encoded it in php using urlencode function. I want to decode that text in the javascript. when i use unescape function in javascript it replaces all the special characters back but sapce is replaced by '+'. how can i do it correctly so that space is replaced as space itself???

1
  • Checkout my answer here. Hope it helps. Commented Jan 10, 2019 at 3:24

5 Answers 5

53

PHP rawUrlEncode() == JavaScript encodeURIComponent()

PHP rawUrlDecode() == JavaScript decodeURIComponent()

Sign up to request clarification or add additional context in comments.

4 Comments

be ware that php urlencode is not compatible with javascript so u should use rawUrlEncode instead
Working for me (((PHP))) $msg = array(); $msg['adds'] = rawUrlEncode($complexAddsWithHTMLMarkup); echo json_encode($msg); ......(((jQuery ajax dataType json))) decodeURIComponent(msg.adds);
Unfortunately, this answer is wrong for some characters. In php rawurlencode(")") == "%29" while in javascript encodeURIComponent(")") == ")".
@RégisB. To comply to RFC 3986 there is a fix on MDN. To the bottom there is a function called fixedEncodeURIComponent
16

Try using rawurlencode instead - urlencode does some things differently for "historical" reasons.

See http://us.php.net/manual/en/function.urlencode.php for more information.

Comments

4

Parenthesis are exceptions to all of what is said in this post.

geek mode on :

false

PHP rawUrlEncode() !== JavaScript encodeURIComponent()

but true

PHP rawUrlEncode() == JavaScript encodeURIComponent()

In other words, there are many special characters that aren't treated as safe in rawurlencode when they are in encodeURIComponent.

Comments

3

Try this:

return decodeURIComponent((str + '').replace(/\+/g, '%20'));

Source: http://phpjs.org/functions/urldecode:572

1 Comment

I think it should be replace(/\+/g, ' '))
0

PHP rawUrlEncode with JS unescape (deprecated but working)

For me decodeURIComponent throw errors sometimes.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.