NSURL,字符串%20

时间:2013-12-15 12:07:51

标签: ios nsstring

我希望网页的网址看起来像这样:

foo.com/l=english&se=local&incEN=false&q=bob%20bob&

这里的问题是,当我说

urlString = @"foo.com/l=english&se=local&incEN=false&q=bob%20bob&";
[self initWithURL:[NSURL URLWithString:urlString]];

我希望网站网址字符串为“foo.com/l=english&se=local&incEN=false&q=bob%20bob&”但它给了我:

foo.com/l=english&se=local&incEN=false&q=bob22520bob&

作为NSURL的字符串。

如何解决此问题,以便将所需的字符串设置为NSURL字符串?

3 个答案:

答案 0 :(得分:2)

尝试此功能:

NSString* urlString = @"foo.com/l=english&se=local&incEN=false&q=bob bob&"
NSString* urlEscaped [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

无需在URL中添加%20,只需在下一个函数中将其转义。

答案 1 :(得分:1)

尝试将%20替换为+ 我经常在URL中看到空格编码为普通+

答案 2 :(得分:0)

也许是网址

urlString = @"foo.com/l=english&se=local&incEN=false&q=bob%20bob&";

已经使用某种类型的空间编码为“%20”,因此使用“stringByAddingPercentEscapesUsingEncoding”方法将再次对其进行编码,这将导致空间为“%22520”。如果是,则编码方法可能无法正常工作http不是https。对于我使用https而不是http并使用NSUTF8StringEncoding编码url字符串。