我正在开发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,其中给出了空间。如果有人知道建议我更好地解决这个问题的方法。这对我来说很棒。提前谢谢。
答案 0 :(得分:5)
您实际上是通过此指令将空格转换为%20:
url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
但为了获得正确的NSURLRequest
,这是必要的,因为有些字符需要进行此转换。
您可以使用其他NSString
方法将其重新转换为“普通”字符:
答案 1 :(得分:3)
从网址中删除%20
url = [strFileName stringByRemovingPercentEncoding];
答案 2 :(得分:2)
如果您不想要%20而不是空格,那么为什么要使用stringByAddingPercentEscapesUsingEncoding
?
stringByAddingPercentEscapesUsingEncoding
- 将空格转换为%20
答案 3 :(得分:1)
我在从Web服务获得响应后使用以下行解决了这个问题。
responseString= [responseString stringByReplacingOccurrencesOfString:@"%20" withString:@" "];
现在我得到了正确的数据,但我认为这不是一个好的解决方案:)。 谢谢你回答帖子。