Swift Academy · Lezione

Rappresentazioni codificate: utf8, utf16, unicodeScalars

Lavori con diverse rappresentazioni codificate.

Lezione 4 di 413 passaggi

Rappresentazioni codificate: utf8, utf16, unicodeScalars è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 4 lezioni in totale.

Viste della codifica delle stringhe

Una String Swift offre diverse viste sullo stesso testo a livelli differenti: utf8, utf16 e unicodeScalars.

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

La vista utf8

La vista .utf8 espone la stringa come una sequenza di unità di codice UTF-8 (byte). I caratteri ASCII occupano un byte ciascuno.

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

UTF-8 multibyte

I caratteri non ASCII occupano più byte UTF-8. Una lettera accentata o un'emoji viene rappresentata da diverse unità di codice.

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

La vista utf16

La vista .utf16 mostra le unità di codice UTF-16. La maggior parte dei caratteri comuni occupa un'unità; i caratteri oltre il piano di base ne usano due (una coppia di surrogati).

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

La vista unicodeScalars

La vista .unicodeScalars espone i punti di codice sottostanti, collocandosi tra i caratteri e i byte grezzi.

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

Confronto tra le viste

La stessa stringa produce conteggi diversi in ciascuna vista, perché le codifiche rappresentano i caratteri usando numeri diversi di unità.

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

Perché UTF-8

UTF-8 è la codifica dominante per file e reti. La vista .utf8 consente di produrre esattamente quei byte.

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

Perché UTF-16

UTF-16 viene usato da alcune piattaforme e API. La vista .utf16 consente l'interoperabilità con esse.

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

Ricostruzione di una stringa

È possibile ricostruire una stringa da byte UTF-8 usando String(decoding:as:), completando un ciclo di andata e ritorno.

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

Conteggio di byte e caratteri

La lunghezza in byte differisce dalla lunghezza in caratteri per il testo non ASCII. Scelga la vista più adatta all'attività: visualizzazione o archiviazione.

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

Scelta della vista corretta

Usi i caratteri per la logica di visualizzazione, gli scalari per l'analisi Unicode e utf8 o utf16 per la codifica, l'archiviazione e l'interoperabilità.

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

Verifica rapida

Richiami che cosa contiene la vista utf8.

Riepilogo: viste della codifica

Ha appreso che una String offre le viste utf8, utf16 e unicodeScalars sullo stesso testo, che i relativi conteggi differiscono perché le codifiche usano unità di dimensioni diverse e che la vista va scelta in base alla necessità di visualizzare, analizzare o codificare il testo per l'archiviazione e la comunicazione in rete.

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

Impara Swift con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
122
Lezioni
409

Domande Frequenti

La lezione «Rappresentazioni codificate: utf8, utf16, unicodeScalars» è gratuita?

Sì — il testo completo di «Rappresentazioni codificate: utf8, utf16, unicodeScalars» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 4 lezioni in totale.

Cosa imparerò in «Rappresentazioni codificate: utf8, utf16, unicodeScalars»?

Lavori con diverse rappresentazioni codificate. Eserciti Swift Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Swift Academy?

Non è richiesta alcuna esperienza precedente. Swift Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Rappresentazioni codificate: utf8, utf16, unicodeScalars»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Swift Academy?

Sì. Ogni lezione Swift Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Caratteri e cluster di grafemi
  2. Scalari Unicode e punti di codice
  3. Conteggio e iterazione dei caratteri
  4. Rappresentazioni codificate: utf8, utf16, unicodeScalars
← Torna a Swift Academy