Vai al contenuto
Case Converter Online
it

Codifica e decodifica UTF-8

Scopri esattamente quali byte usa UTF-8 per qualsiasi testo, ritrasforma i byte in caratteri e ripara il testo corrotto come café. Ogni carattere viene elencato con il suo code point.

Funziona in entrambe le direzioni. Scegli il formato dei byte che corrisponde a quello che incolli a destra.

Carattere per carattere

CarattereCode pointByte UTF-8Byte

Che cos’è UTF-8

Per capire la codifica e decodifica UTF-8 bisogna partire da qui: in un computer ogni testo è memorizzato come numeri. Unicode è l’elenco generale che assegna a ogni carattere un numero, chiamato code point. La lettera A è U+0041, é è U+00E9 e il simbolo dell’euro € è U+20AC. UTF-8 è la regola che trasforma questi code point in byte.

UTF-8 è la codifica standard del web, del JSON, della maggior parte dei linguaggi di programmazione e dei sistemi operativi moderni. Il suo pregio principale è che il testo ASCII semplice resta invariato: A è sempre il singolo byte 41. Gli altri caratteri usano due, tre o quattro byte, e ognuno di questi byte vale 128 o più, quindi non si possono mai confondere con l’ASCII.

Come usare lo strumento UTF-8

Codificare. Scrivi nel riquadro Testo. I byte UTF-8 compaiono nel riquadro Byte UTF-8. Premi Copia per prenderli.

Decodificare. Incolla i byte nel riquadro Byte UTF-8. I caratteri compaiono a sinistra. Assicurati che il Formato dei byte corrisponda a ciò che incolli.

Formato dei byte offre sei modi per scrivere i byte:

  • Byte esadecimali: C3 A9 per leggere e fare debug
  • Escape: \xC3\xA9 per le stringhe letterali nel codice
  • Percentuale: %C3%A9 come negli indirizzi web
  • Decimale: 195 169 per gli array di byte
  • Binario: 11000011 10101001 per capire come sono disposti i bit
  • Testo corrotto: é (correggi mojibake) per riparare un testo letto con la codifica sbagliata

Carattere per carattere. La tabella sotto lo strumento elenca ogni carattere con il suo code point, i suoi byte UTF-8 e il numero di byte. Il riepilogo mostra il totale di caratteri e di byte. Spazi, tabulazioni e a capo vengono indicati per nome, così li vedi.

Come funziona UTF-8

Il numero di byte dipende dalla grandezza del code point:

Code point Byte Schema dei bit
Da U+0000 a U+007F 1 0xxxxxxx
Da U+0080 a U+07FF 2 110xxxxx 10xxxxxx
Da U+0800 a U+FFFF 3 1110xxxx 10xxxxxx 10xxxxxx
Da U+10000 a U+10FFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

Il primo byte indica quanti byte seguono. Ogni byte successivo inizia con 10. Questo rende UTF-8 autosincronizzante: un programma riesce sempre a trovare l’inizio del carattere successivo, anche a metà di un flusso di dati.

Esempi

Carattere Code point UTF-8 esadecimale Decimale
A U+0041 41 65
é U+00E9 C3 A9 195 169
ñ U+00F1 C3 B1 195 177
ß U+00DF C3 9F 195 159
€ U+20AC E2 82 AC 226 130 172
日 U+65E5 E6 97 A5 230 151 165
emoji del pollice in su U+1F44D F0 9F 91 8D 240 159 145 141

Tutte le vocali accentate dell’italiano rientrano nell’intervallo dei due byte: è (U+00E8) è C3 A8, à (U+00E0) è C3 A0, ù (U+00F9) è C3 B9.

Correggere il mojibake

Il mojibake è l’accozzaglia di simboli che vedi quando i byte UTF-8 vengono letti come Windows-1252 o Latin-1. Ogni byte diventa un carattere a sé, quindi le lettere da due byte diventano due simboli strani:

Testo corretto Come appare
café café
naïve naïve
It’s It’s
€ €

Nei testi italiani succede spesso: perché appare come perché ed è come è. Il formato Testo corrotto annulla l’errore: ritrasforma ogni carattere corrotto nel suo byte e decodifica i byte come UTF-8. Se il testo contiene caratteri che non possono derivare da questo errore, lo strumento te lo dice invece di tirare a indovinare.

Consigli e limiti

  • Salva i file in UTF-8. La maggior parte del mojibake nasce da un file salvato con una codifica e aperto con un’altra. Negli editor, scegli UTF-8 quando salvi.
  • Dichiara la codifica. In HTML, metti <meta charset="utf-8"> in cima alla pagina.
  • Excel e file CSV. Le versioni meno recenti di Excel tirano a indovinare la codifica di un CSV. Salvare come “CSV UTF-8” evita gli accenti rovinati.
  • La correzione funziona una volta. Un testo corrotto due volte richiede di applicare la correzione due volte.
  • La tabella mostra fino a 500 caratteri per mantenere veloce la pagina. Il conteggio dei byte copre sempre tutto il testo.

Altri modi per farlo

Python. 'café'.encode('utf-8') restituisce b'caf\xc3\xa9'. Per correggere il mojibake, 'café'.encode('cp1252').decode('utf-8') restituisce café.

JavaScript. new TextEncoder().encode('é') restituisce i byte 195 e 169. new TextDecoder().decode(bytes) li ritrasforma in testo.

Riga di comando. echo -n é | xxd mostra i byte c3a9 in un terminale UTF-8. iconv -f WINDOWS-1252 -t UTF-8 converte file interi.

Strumenti correlati

Per decodificare semplici byte esadecimali, usa il convertitore da esadecimale a testo. I byte codificati con % nei link si gestiscono con la decodifica URL. Per vedere tutti i bit, prova il traduttore di codice binario.

Codificatore UTF-8: domande e risposte

Quanti byte occupa un carattere in UTF-8?

Da uno a quattro. Lettere inglesi, cifre e punteggiatura di base occupano un byte. La maggior parte delle lettere latine accentate, il greco, il cirillico, l'ebraico e l'arabo ne occupano due. La maggior parte dei caratteri cinesi, giapponesi e coreani e simboli come l'euro ne occupano tre. Le emoji di solito quattro.

Come si corregge un testo come café o It’s?

Imposta Formato dei byte su Testo corrotto: é (correggi mojibake) e incolla il testo rovinato nel riquadro di destra. Il testo riparato compare a sinistra: café diventa café e It’s diventa It’s.

Qual è la differenza tra Unicode e UTF-8?

Unicode assegna a ogni carattere un numero, chiamato code point (punto di codice), come U+20AC per il simbolo dell'euro. UTF-8 è uno dei modi per memorizzare quei numeri come byte. Il simbolo dell'euro in UTF-8 si memorizza come E2 82 AC.

Perché il mio testo ha più byte che caratteri?

Perché i caratteri al di fuori dell'ASCII di base occupano più byte ciascuno. Café €5 più un'emoji del pollice in su sono 9 caratteri ma 15 byte. Il riepilogo sopra la tabella dei caratteri mostra entrambi i conteggi.

Altri strumenti per codice e dati

Vedi tutti gli strumenti