0Pricing
Swift Academy · Lektion

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

  1. Zeichen und Graphemcluster
  2. Unicode-Skalare und Codepoints
  3. Zeichen zählen und durchlaufen
  4. Ansichten von Kodierungen: utf8, utf16, unicodeScalars
← Zurück zu Swift Academy