给定一个Unicode符号String或其XML / HTML实体,一个人如何生成其Unicode数字?例如,如果为您提供了字符串"෴",并且可以生成其HTML代码(෴),那么如何生成其Unicode数字(U+0DF4)?
String
"෴"
෴
U+0DF4
我目前正在通过使用CFStringTransformAPI并kCFStringTransformToXMLHex用于转换来生成HTML实体。但是unicode号本身并没有转换。
CFStringTransform
kCFStringTransformToXMLHex
更新: 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} } }
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} } }
let str = "<span>€€</span>".html2AttributedString?.string ?? "" print(str.unicodes) // [8364, 8364]