
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")
}
extension String {
var convertedToUnicodeHex: String { applyingTransform(.toUnicodeHex, reverse: false) ?? "" }
var convertedToJavaHex: String { applyingTransform(.toJavaHex, reverse: false) ?? "" }
var convertedToXMLHex: String { applyingTransform(.toXMLHex, reverse: false) ?? "" }
var convertedToPerlHex: String { applyingTransform(.toPerlHex, reverse: false) ?? "" }
}
"෴".convertedToUnicodeHex // U+0DF4
"෴".convertedToJavaHex // \u0DF4
"෴".convertedToXMLHex // ෴
"෴".convertedToPerlHex // \x{DF4}
"෴".unicodes // [3572]
0x0DF4 // 3572

Scinfu
Mit meinem Schnelle Suppees ist leicht.
SwiftSoup
ist eine reine Swift-Bibliothek, plattformübergreifend (macOS, iOS, tvOS, watchOS und Linux!)
let text = "Hello &<> Å å π 新 there ¾ © »"
print(Entities.escape(text))
print(Entities.unescape(text))
print(Entities.escape(text, OutputSettings().encoder(String.Encoding.ascii).escapeMode(Entities.EscapeMode.base)))
print(Entities.escape(text, OutputSettings().charset(String.Encoding.ascii).escapeMode(Entities.EscapeMode.extended)))
print(Entities.escape(text, OutputSettings().charset(String.Encoding.ascii).escapeMode(Entities.EscapeMode.xhtml)))
print(Entities.escape(text, OutputSettings().charset(String.Encoding.utf8).escapeMode(Entities.EscapeMode.extended)))
print(Entities.escape(text, OutputSettings().charset(String.Encoding.utf8).escapeMode(Entities.EscapeMode.xhtml)))
Ausgabe:
"Hello &<> Å å π 新 there ¾ © »"
"Hello &<> Å å π 新 there ¾ © »"
"Hello &<> Å å π 新 there ¾ © »"
"Hello &<> Å å π 新 there ¾ © »"
"Hello &<> Å å π 新 there ¾ © »"
"Hello &<> Å å π 新 there ¾ © »"
"Hello &<> Å å π 新 there ¾ © »"
10177100cookie-checkKonvertieren Sie das Unicode-Symbol oder seine XML/HTML-Entitäten in seine Unicode-Nummer in Swiftyes