这是一个问题,我找不到解决方案。在我的程序中,我尝试用url打开Safari,直到这个场合,这是好的:我试图将该网站与俄罗斯主机和域名链接,例如:
ImageController.Get()
然后我有一个错误:
致命错误:在解包可选值时意外发现nil
因此类NSURL无法在具有俄语符号的链接上创建对象。我试图使用 url.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLFragmentAllowedCharacterSet())!和类似的,但问题是它将所有“不正确”的符号更改为其他符号,但是有必要将俄罗斯网站完全链接到俄语域名,这意味着url-address中没有真正不正确的字母。
我不相信NSURL不能使用非英语符号。谁能帮我?
答案 0 :(得分:1)
您需要与主机
相关的字符集let string = "http://" + "карта.рф".stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())!
let url = NSURL(string:string)
如果您还需要对path
和query
进行编码,请使用NSURLComponents
并对其他组件进行单独编码。
let components = NSURLComponents()
components.scheme = "http"
components.host = "карта.рф".stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())
let url = components.URL!