Codifica dei caratteri
Una codifica dei caratteri definisce come caratteri o punti di codice sono rappresentati da sequenze di byte e poi decodificati.
Definizione
Una codifica dei caratteri stabilisce come convertire unità testuali in numeri o byte per memorizzarle e trasmetterle, e come ricostruire il testo. Mittente e destinatario devono usare la stessa codifica.
ASCII, UTF-8, UTF-16 e le vecchie pagine di codice sono codifiche o schemi. Unicode definisce repertorio e punti; UTF-8 e UTF-16 la loro rappresentazione concreta.
Come funziona
Il codificatore associa sequenze valide e il decodificatore applica le regole inverse. In UTF-8, A è 41 e € è E2 82 AC. Le codifiche a lunghezza variabile usano quantità diverse di byte.
Il charset HTTP, la dichiarazione del file o il protocollo indicano il decoder. Senza contesto, gli stessi byte possono generare testi differenti.
Esempio pratico
Decodificati come UTF-8, i byte E2 82 AC producono €. Con una codifica a byte singolo estranea producono altri caratteri: questa corruzione è spesso chiamata mojibake.
La conversione richiede di decodificare correttamente l’origine e ricodificare i caratteri nella destinazione. Cambiare solo l’etichetta non converte i byte.
Errori comuni
Una sequenza non valida può essere rifiutata o sostituita con U+FFFD. Se la codifica di destinazione non rappresenta un carattere, può verificarsi errore, sostituzione o perdita.
Indicatore d’ordine dei byte, endianness, normalizzazione Unicode e fine riga sono questioni correlate ma distinte. Codificare non significa cifrare.
No. Unicode assegna punti e proprietà; UTF-8 codifica quei punti in byte.
I byte possono essere stati decodificati male o sostituiti perché la destinazione non poteva rappresentare i caratteri.
No. Alcuni byte sono validi in più codifiche, soprattutto brevi testi ASCII. Servono metadati, BOM o contesto.