在Swift中解码一个string

我如何解码一个string在迅速? 该string现在testing%2Enl,但正确的格式是test.nl.

我现在有这个:

let encodedData = encodedString.dataUsingEncoding(NSUTF16StringEncoding)! let attributedOptions = [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType] let attributedString = NSAttributedString(data: encodedData, options: attributedOptions, documentAttributes: nil, error: nil)! return attributedString.string 

你可以使用stringByReplacingPercentEscapesUsingEncoding

 var properString = s.stringByReplacingPercentEscapesUsingEncoding(NSUTF8StringEncoding)! 

swift 3的更新:改用removingPercentEncoding

在Swift 3:

 let encodedString = "test%2Enl" let decodedString = encodedString.removingPercentEncoding! 

Swift 3在许多Apple API中删除了许多“过量”的措辞。

在这种情况下,stringByRemovingPercentEncoding被简化为删除PerceenEncoding。

或者你可以使用stringByRemovingPercentEncoding?

从文档:

通过用匹配的UTF-8字符replace所有百分比编码的序列,从接收器中返回一个新的string。

 let encodedString = "test%2Enl" let decodedString = encodedString.stringByRemovingPercentEncoding! println(decodedString) 

这将打印test.nl

你可以使用SwiftString( https://github.com/amayne/SwiftString )来做到这一点。

 "test%2Enl".decodeHTML() // "test.nl" 

免责声明:我写了这个扩展名