编码包含表情符号图标的网址

时间:2015-11-17 18:31:23

标签: ios url encoding urlencode nsurl

无法使用包含表情符号图标的字符串准备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字符串。)??

0 个答案:

没有答案