在我的 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/