更新:Xcode 9•Swift 4
extension String {
var html2AttributedString: NSAttributedString? {
do {
return try NSAttributedString(data: Data(utf8), options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding: String.Encoding.utf8.rawValue], documentAttributes: nil)
} catch {
print(error)
return nil
}
}
var unicodes: [UInt32] { return unicodeScalars.map{$0.value} }
}
Run Code Online (Sandbox Code Playgroud)
Xcode 8•Swift 3
extension String {
var html2AttributedString: NSAttributedString? {
do {
return try NSAttributedString(data: Data(utf8), options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue], documentAttributes: nil)
} catch {
print(error)
return nil
}
}
var unicodes: [UInt32] { return unicodeScalars.map{$0.value} }
}
Run Code Online (Sandbox Code Playgroud)
let str = "<span>€€</span>".html2AttributedString?.string ?? ""
print(str.unicodes) // [8364, 8364]
Run Code Online (Sandbox Code Playgroud)