我希望网页的网址看起来像这样:
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字符串?
答案 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字符串。