NSURL逃脱的角色不能工作

时间:2014-04-23 13:12:23

标签: objective-c nsurl

我在使用如下所示的URL字符串创建NSURL对象时遇到问题:

“... fexp = 935648%2C945012%2C901066%2C91 ......”等等(它只是一部分 - 完整的网址很长)。

网址包含许多转义字符百分比(%2C)。我绝对无法使用此URL创建NSURL对象(URL本身是正确的,因为我可以使用浏览器打开它)。致电

[[NSURL alloc] initWithString:url];

返回NIL。

我通过调用

修改网址
[url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

我收到了一个有效的NSURL对象。

问题是:这个“有效”的NSURL对象包含一个无效的URL,如下所示:

“... fexp = 935648%252C945012%252C901066%225C91 ...”

正如您所见,初始转义百分比转义字符(%2C)已再次转义(%252C),从而导致无法打开的网址(再次使用浏览器尝试)。

原始URL由外部工具生成,因此我对其创建机制没有任何影响。

有人知道可能出错的地方吗?

1 个答案:

答案 0 :(得分:3)

对我而言似乎有点奇怪,但以下似乎有效:

[url stringByRemovingPercentEncoding];
[url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];`

感谢您的提示。