Ansichten von Kodierungen: utf8, utf16, unicodeScalars
Arbeiten Sie mit verschiedenen kodierten Darstellungen.
Ansichten von Kodierungen: utf8, utf16, unicodeScalars ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Ansichten zur Zeichenkettenkodierung
Ein Swift-String bietet mehrere Ansichten auf denselben Text auf unterschiedlichen Ebenen: utf8, utf16 und unicodeScalars.
let s = "Hi"
print(Array(s.utf8))
print(Array(s.utf16))Die utf8-Ansicht
Die .utf8-Ansicht stellt die Zeichenkette als Folge von UTF-8-Codeeinheiten (Bytes) bereit. ASCII-Zeichen benötigen jeweils ein Byte.
let s = "AB"
for byte in s.utf8 {
print(byte)
}UTF-8 mit mehreren Bytes
Nicht-ASCII-Zeichen benötigen mehrere UTF-8-Bytes. Ein Buchstabe mit Akzent oder ein Emoji wird auf mehrere Codeeinheiten erweitert.
let s = "\u{e9}"
print("UTF-8 bytes:", Array(s.utf8))Die utf16-Ansicht
Die .utf16-Ansicht zeigt UTF-16-Codeeinheiten. Die meisten häufig verwendeten Zeichen benötigen eine Einheit; Zeichen außerhalb der Grundebene verwenden zwei Einheiten (ein Surrogatpaar).
let s = "A\u{1F600}"
print("UTF-16 units:", Array(s.utf16))Die unicodeScalars-Ansicht
Die .unicodeScalars-Ansicht stellt die zugrunde liegenden Codepoints bereit und liegt damit zwischen Zeichen und rohen Bytes.
let s = "Hi\u{1F600}"
for scalar in s.unicodeScalars {
print(scalar.value)
}Die Ansichten vergleichen
Dieselbe Zeichenkette liefert in jeder Ansicht eine andere Anzahl, da Kodierungen Zeichen mit unterschiedlich vielen Einheiten darstellen.
let s = "\u{1F600}"
print("characters:", s.count)
print("scalars:", s.unicodeScalars.count)
print("utf16:", s.utf16.count)
print("utf8:", s.utf8.count)Warum UTF-8
UTF-8 ist die vorherrschende Kodierung für Dateien und Netzwerke. Mit der .utf8-Ansicht können Sie genau diese Bytes erzeugen.
let message = "OK"
let bytes = Array(message.utf8)
print(bytes)Warum UTF-16
UTF-16 wird von einigen Plattformen und APIs verwendet. Die .utf16-Ansicht ermöglicht die Interoperabilität mit ihnen.
let s = "Hi"
print("UTF-16 count:", s.utf16.count)Eine Zeichenkette rekonstruieren
Sie können eine Zeichenkette mithilfe von String(decoding:as:) aus UTF-8-Bytes wiederherstellen und so einen vollständigen Roundtrip durchführen.
let bytes: [UInt8] = Array("Swift".utf8)
let restored = String(decoding: bytes, as: UTF8.self)
print(restored)Bytes und Zeichen vergleichen
Bei Nicht-ASCII-Text unterscheidet sich die Bytelänge von der Zeichenlänge. Wählen Sie die Ansicht, die zu Ihrer Aufgabe passt: Darstellung oder Speicherung.
let s = "caf\u{e9}"
print("Characters:", s.count)
print("UTF-8 bytes:", s.utf8.count)Die richtige Ansicht auswählen
Verwenden Sie Zeichen für Darstellungslogik, Skalare für Unicode-Analysen und utf8 oder utf16 für Kodierung, Speicherung und Interoperabilität.
let s = "A\u{e9}\u{1F600}"
print("chars:", s.count, "scalars:", s.unicodeScalars.count, "utf8:", s.utf8.count)Kurzer Test
Rufen Sie sich ins Gedächtnis, was die utf8-Ansicht enthält.
Zusammenfassung: Ansichten zur Kodierung
Sie haben gelernt, dass ein String die Ansichten utf8, utf16 und unicodeScalars auf denselben Text anbietet, dass sich ihre Anzahlen unterscheiden, weil Kodierungen unterschiedlich große Einheiten verwenden, und dass Sie die Ansicht danach auswählen, ob Sie Darstellung, Analyse oder Kodierung für Speicherung und Netzwerke benötigen.
let s = "Hi\u{1F600}"
print("chars:", s.count, "utf8:", s.utf8.count, "utf16:", s.utf16.count)Häufig gestellte Fragen
Ist die Lektion „Ansichten von Kodierungen: utf8, utf16, unicodeScalars“ kostenlos?
Ja — der vollständige Text von „Ansichten von Kodierungen: utf8, utf16, unicodeScalars“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Ansichten von Kodierungen: utf8, utf16, unicodeScalars“?
Arbeiten Sie mit verschiedenen kodierten Darstellungen. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Swift Academy zu starten?
Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Ansichten von Kodierungen: utf8, utf16, unicodeScalars“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?
Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Zeichen und Graphemcluster
- Unicode-Skalare und Codepoints
- Zeichen zählen und durchlaufen
- Ansichten von Kodierungen: utf8, utf16, unicodeScalars