我在使用如下所示的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由外部工具生成,因此我对其创建机制没有任何影响。
有人知道可能出错的地方吗?
答案 0 :(得分:3)
对我而言似乎有点奇怪,但以下似乎有效:
[url stringByRemovingPercentEncoding];
[url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];`
感谢您的提示。