在我的iOS应用程序中,我使用NSURLConnection将请求发布到服务器。以下是我正在使用的代码:
NSString* str = @"http://www.myserver.com/post.php?action=rating&grade=A+&name=vasu";
NSURL *url = [NSURL URLWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
如果看到等级,则等于“A +”
但它只发布“A”作为服务器的等级。即使我正确编码字符串,为什么它无法正确发布请求?
它是否必须在服务器上处理?
答案 0 :(得分:1)
+符号是用于URL编码的保留字符(用于“空格”)。虽然stringByAddingPercentEscapesUsingEncoding
之后+的转义值应该是%2B,但是......它不是。你可以做的是在NSString
中添加一个简单的类别来绕过这个问题。您可以在blog post here