2

我正在开发应用程序,我大部分时间都在与网络服务进行交互。当我在将 url 转换为请求时将空间转换为 %20 的某处添加空间时,我遇到了问题。我用谷歌搜索,但根据我的要求找不到任何健康的解决方案,因为它只在请求 url 时发生变化。这就是我正在做的事情。

    url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
NSLog(@"Request is : %@", request);
[[NSURLConnection alloc] initWithRequest:request delegate:self];

并在NSLog上面显示 %20 给我的空间。如果有人知道请建议我更好的方法来解决这个问题。这对我来说会很棒。提前致谢。

4

4 回答 4

5

您实际上正在使用以下指令将空格转换为 %20 :

url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

但这对于获得正确的 是必要的NSURLRequest,因为某些字符需要这种转换。

您可以使用其他NSString方法将它们重新转换为“普通”字符:

– stringByReplacingPercentEscapesUsingEncoding

于 2013-04-25T09:00:24.660 回答
3

从 URL 中删除 %20

url = [strFileName stringByRemovingPercentEncoding];
于 2014-09-24T12:37:19.013 回答
2

如果您不想要 %20 而不是空间,那么您为什么要使用stringByAddingPercentEscapesUsingEncoding

stringByAddingPercentEscapesUsingEncoding- 将空间转换为 %20

于 2013-04-25T09:01:11.457 回答
1

在获得 Web 服务的响应后,我通过使用以下行解决了这个问题。

 responseString= [responseString stringByReplacingOccurrencesOfString:@"%20" withString:@" "];

现在我得到了正确的数据,但我认为这不是一个好的解决方案:)。感谢您回答帖子。

于 2013-04-25T10:11:55.453 回答