ajax - Why jquery replaces "+" with a space (" ")?
ajax, java, jquery
Solution
In some `GET` and `POST` requests (most likely in the URL, or via a form), spaces are encoded as "+" (plus) symbols before they are passed to the server. You can see this behaviour if you do a normal `GET` request - you will see something like `google.com?q=test+example` If you want to pass a plus symbol via an ajax GET/POST request, you need to "urlencode" it. The URL encoded value for `+` is `%2B`.
Also note:
The javascript encodeURIComponent() function can be used, as answered in:
AJAX POST and Plus Sign ( + ) -- How to Encode?
Problem
I am having a problem here. When I use ajax to pass a parameter containing "+" to my controller it is being replaced by a space. Example, I will pass value = `Tom+Jerry+Garfield` using ajax. When I use System.out.println() in my controller it displays `Tom Jerry Garfield`. I tried using other special characters I don't seem to have a problem. Please help. Thanks in advance.