iOS - NSURLConnection - 请求中字符的正确编码

时间:2012-06-22 18:11:57

标签: ios nsurlconnection

在我的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”作为服务器的等级。即使我正确编码字符串,为什么它无法正确发布请求? 它是否必须在服务器上处理?

1 个答案:

答案 0 :(得分:1)

+符号是用于URL编码的保留字符(用于“空格”)。虽然stringByAddingPercentEscapesUsingEncoding之后+的转义值应该是%2B,但是......它不是。你可以做的是在NSString中添加一个简单的类别来绕过这个问题。您可以在blog post here

上找到相关的URL encoding here和一些信息