[NSURL URLWithString:]
方法会转义部分字符,比如'[]';一下字符不转义,比如':/%#@';而遇到另一些字符,比如'<>'直接返回nil。
这个方法应该只适应于服务器返回的String,它假设服务器把url中非法的字符已经过滤了。如果是本地拼接url,还是需要调接用[NSString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
转义。
对于文件系统,非法字符又不同。因此Apple在文档中特别注明,文件URL创建用另外函数[NSURL fileURLWithPath: isDirectory:]
。
Java也有对URL和String做区分