如何在NSURL中使用特殊字符?

我的应用程序正在使用这样的NSURL:


var url = NSURL(string: "http://www.geonames.org/search.html?q=Aïn+Béïda+Algeria&country=")

当我尝试执行一个任务来从此NSURL获取数据时,如下所示:


    let task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (data: NSData!, response: NSURLResponse!, error: NSError!) -> Void in


        if error == nil {


            var urlContent = NSString(data: data, encoding: NSUTF8StringEncoding)

            println("urlContent \(urlContent!)")

        } else {


            println("error mode")

        }

但是当我尝试从该地址获取数据时出现错误,尽管当我使用野生动物园去链接时:“ http://www.geonames.org/search.html?q =Aïn+Béïda+ Algeria&country =”我可以看到数据。我该如何解决?


侃侃尔雅
浏览 621回答 3
3回答

心有法竹

为什么URLFragmentAllowedCharacterSet呢?还有URLHostAllowedCharacterSet,URLPasswordAllowedCharacterSet,URLPathAllowedCharacterSet,URLQueryAllowedCharacterSet和URLUserAllowedCharacterSet 

MMMHUHU

我使用此代码片段有两个问题:1. 永远不要一次编码整个查询字符串。某些字符保留为查询字符串部分(&,=等)之间的分隔符,并且如果组成这些查询部分的原始字符串包含这些字符中的任何一个,则您的方法将很难解决。2.您应该使用NSURLComponents构造查询字符串,而不是使用字符串串联。它更安全,并且避免您完全担心字符集。
打开App,查看更多内容
随时随地看视频慕课网APP