无法使用包含表情符号图标的字符串准备NSURL
个对象。
当我尝试使用:
形成NSURL
时
let urlString = "http://www.example.com/"
let URL = NSURL(string: urlString)
返回的 URL
为nil,而浏览器可以使用相同的urlString打开有效的网页。
我想在UIWebView中打开它。那么任何想法如何正确编码以满足NSURL要求?
任何指针都会非常感激。
更新 当我尝试使用以下字符串准备NSURL对象时:
let encodedURLString = urlString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)
由于stringByAddingPercentEscapesUsingEncoding()
方法将非法网址字符转换为合法代表,因此效果非常好。 但这已被弃用。
可以使用其替代方法stringByAddingPercentEncodingWithAllowedCharacters()
,但必须在不同的网址组件上调用它,例如:
// host: "www.example.com", path: "/"
host.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLHostAllowedCharacterSet())
path.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLPathAllowedCharacterSet())
如何从字符串中获取url组件(即主机,路径等),就像我尝试创建NSURL / NSURLComponents时一样,它返回nil。(原因是格式错误的url字符串。)??