Konvertieren Sie das Unicode-Symbol oder seine XML/HTML-Entitäten in seine Unicode-Nummer in Swift
Lesezeit: 2 Minuten
Jordan H
Gegeben entweder ein Unicode-Symbol als a String oder seine XML/HTML-Entitäten, wie könnte man seine Unicode-Nummer generieren? Zum Beispiel, wenn Sie die Zeichenfolge erhalten "෴"und Sie könnten seinen HTML-Code generieren (෴), wie könnten Sie dann seine Unicode-Nummer generieren (U+0DF4)?
Ich generiere derzeit die HTML-Entitäten mit der CFStringTransform API und Verwendung kCFStringTransformToXMLHex für die Verwandlung. Aber es gibt keine Transformation für die Unicode-Nummer selbst.
Leo Dabus
aktualisieren: Xcode 11.4 • Schnell 5.2
extension String {
var data: Data { .init(utf8) }
var html2AttributedString: NSAttributedString? {
do {
return try NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding: String.Encoding.utf8.rawValue], documentAttributes: nil)
} catch {
print(error)
return nil
}
}
var html2String: String { html2AttributedString?.string ?? "" }
var unicodes: [UInt32] { unicodeScalars.map(\.value) }
}
let str = "<span>€€</span>".html2String // "€€"
str.unicodes // [8364, 8364]
extension StringTransform {
static let toUnicodeHex = Self("Hex/Unicode")
static let toJavaHex = Self("Hex/Java")
static let toPerlHex = Self("Hex/Perl")
}