0Pricing
Swift Academy · Lekcja

Widoki kodowania: utf8, utf16, unicodeScalars

Praca z różnymi reprezentacjami zakodowanego tekstu.

Widoki kodowania: utf8, utf16, unicodeScalars to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.

Widoki kodowania łańcucha znaków

Obiekt Swift String udostępnia kilka widoków tego samego tekstu na różnych poziomach: utf8, utf16 i unicodeScalars.

let s = "Hi"
print(Array(s.utf8))
print(Array(s.utf16))

Widok utf8

Widok .utf8 udostępnia łańcuch jako sekwencję jednostek kodu UTF-8 (bajtów). Każdy znak ASCII zajmuje jeden bajt.

let s = "AB"
for byte in s.utf8 {
    print(byte)
}

Wielobajtowy UTF-8

Znaki spoza ASCII zajmują wiele bajtów UTF-8. Litera akcentowana lub emoji zajmuje kilka jednostek kodu.

let s = "\u{e9}"
print("UTF-8 bytes:", Array(s.utf8))

Widok utf16

Widok .utf16 przedstawia jednostki kodu UTF-16. Większość popularnych znaków zajmuje jedną jednostkę, a znaki spoza podstawowej płaszczyzny Unicode zajmują dwie jednostki, czyli parę zastępczą.

let s = "A\u{1F600}"
print("UTF-16 units:", Array(s.utf16))

Widok unicodeScalars

Widok .unicodeScalars udostępnia bazowe punkty kodowe, znajdujące się między znakami a surowymi bajtami.

let s = "Hi\u{1F600}"
for scalar in s.unicodeScalars {
    print(scalar.value)
}

Porównywanie widoków

Ten sam łańcuch daje różne liczby w każdym widoku, ponieważ kodowania przedstawiają znaki za pomocą różnej liczby jednostek.

let s = "\u{1F600}"
print("characters:", s.count)
print("scalars:", s.unicodeScalars.count)
print("utf16:", s.utf16.count)
print("utf8:", s.utf8.count)

Dlaczego UTF-8

UTF-8 jest dominującym kodowaniem używanym w plikach i sieciach. Widok .utf8 pozwala wygenerować dokładnie takie bajty.

let message = "OK"
let bytes = Array(message.utf8)
print(bytes)

Dlaczego UTF-16

UTF-16 jest używany przez niektóre platformy i interfejsy API. Widok .utf16 umożliwia współpracę z nimi.

let s = "Hi"
print("UTF-16 count:", s.utf16.count)

Odtwarzanie łańcucha znaków

Łańcuch znaków można odtworzyć z bajtów UTF-8 za pomocą String(decoding:as:), zamykając w ten sposób pełny cykl konwersji.

let bytes: [UInt8] = Array("Swift".utf8)
let restored = String(decoding: bytes, as: UTF8.self)
print(restored)

Zliczanie bajtów a zliczanie znaków

Długość wyrażona w bajtach różni się od długości wyrażonej w znakach dla tekstu spoza ASCII. Należy wybrać widok odpowiedni do zadania: wyświetlania lub przechowywania.

let s = "caf\u{e9}"
print("Characters:", s.count)
print("UTF-8 bytes:", s.utf8.count)

Wybór właściwego widoku

Znaków należy używać w logice wyświetlania, skalarów w analizie Unicode, a utf8 lub utf16 w kodowaniu, przechowywaniu i integracji z innymi systemami.

let s = "A\u{e9}\u{1F600}"
print("chars:", s.count, "scalars:", s.unicodeScalars.count, "utf8:", s.utf8.count)

Szybkie sprawdzenie

Proszę przypomnieć sobie, co zawiera widok utf8.

Podsumowanie: widoki kodowania

Dowiedzieli się Państwo, że obiekt String udostępnia widoki utf8, utf16 i unicodeScalars tego samego tekstu, że ich liczby różnią się, ponieważ kodowania używają jednostek o różnym rozmiarze, oraz że widok należy wybrać zależnie od tego, czy potrzebne jest wyświetlanie, analiza czy kodowanie na potrzeby przechowywania i komunikacji sieciowej.

let s = "Hi\u{1F600}"
print("chars:", s.count, "utf8:", s.utf8.count, "utf16:", s.utf16.count)

Często zadawane pytania

Czy lekcja „Widoki kodowania: utf8, utf16, unicodeScalars” jest bezpłatna?

Tak — pełny tekst „Widoki kodowania: utf8, utf16, unicodeScalars” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Widoki kodowania: utf8, utf16, unicodeScalars”?

Praca z różnymi reprezentacjami zakodowanego tekstu. Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Swift Academy?

Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Widoki kodowania: utf8, utf16, unicodeScalars”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?

Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Znaki i klastry grafemów
  2. Skalary Unicode i punkty kodowe
  3. Zliczanie i iterowanie po znakach
  4. Widoki kodowania: utf8, utf16, unicodeScalars
← Powrót do Swift Academy