In my iOS application, i’m posting the request to server using NSURLConnection. The following is the code that I’m using:
NSString* str = @"http://www.myserver.com/post.php?action=rating&grade=A+&name=vasu";
NSURL *url = [NSURL URLWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
If you see the grade, its equal to “A+”
But its posting only “A” as grade to server. Even though when I’m encoding the string appropriately, why is it not able to post the request properly?
Is it something that has to be handled on server?
The + sign is a reserved character for URL encoding (for ‘space’). Although the escaped value for + should be %2B after
stringByAddingPercentEscapesUsingEncoding, well… it isn’t. What you can do though is to add a simple category intoNSStringto bypass this problem. You can find a relevant blog post here and some information on URL encoding here