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
- Znaki i klastry grafemów
- Skalary Unicode i punkty kodowe
- Zliczanie i iterowanie po znakach
- Widoki kodowania: utf8, utf16, unicodeScalars