如何在iPhone Iphone SDK中将%20转换为空格

时间:2013-04-25 08:56:53

标签: nsurl

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

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

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

4 个答案:

答案 0 :(得分:5)

您实际上是通过此指令将空格转换为%20:

url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

但为了获得正确的NSURLRequest,这是必要的,因为有些字符需要进行此转换。

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

– stringByReplacingPercentEscapesUsingEncoding

答案 1 :(得分:3)

从网址中删除%20

url = [strFileName stringByRemovingPercentEncoding];

答案 2 :(得分:2)

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

stringByAddingPercentEscapesUsingEncoding - 将空格转换为%20

答案 3 :(得分:1)

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

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

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