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

标签 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”等级。即使当我对字符串进行适当编码时,为什么它无法正确发布请求?
这是必须在服务器上处理的事情吗?

最佳答案

+ 号是 URL 编码的保留字符(用于“空格”)。虽然 + 的转义值在 stringByAddingPercentEscapesUsingEncoding 之后应该是 %2B,但是......事实并非如此。不过,您可以做的就是在 NSString 中添加一个简单的类别来绕过这个问题。可以找相关blog post here以及有关 URL encoding here 的一些信息

关于iOS - NSURLConnection - 请求中字符的正确编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11161869/

相关文章:

ios - GestureRecognizer 和 IBOutlet 不能一起工作

ios - 内存管理 : does this code has a memory leak?

android - Cordova调度任务

ios - 发送多个 NSURLSession

objective-c - 为什么要在这个语句中释放NSURLConnection实例呢?

iphone - NSMutableURLRequest 继承另一个 NSMutableURLRequest 的成功

objective-c - 无法将按钮连接到文件所有者

带有不完整 TLS 握手的 iOS ECONNRESET - 生成 errSSLClosedNoNotify

ios - UI卡在后台rss解析

iOS 应用仅在使用 NSURLConnection 的 Ad Hoc 中崩溃