在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"
免责声明:我写了这个扩展名