Convertitore e Correttore di Mojibake (Testo Corrotto)

Incolla un testo con caratteri corrotti (mojibake) e lo strumento riconosce all'istante la combinazione di codifiche che ha causato il problema, proponendo le possibili ricostruzioni. È prevista anche la conversione esplicita fra UTF-8, Shift_JIS, EUC-JP e JIS (ISO-2022-JP) — gratuito, senza registrazione.

Che cos'è il mojibake e perché si verifica

Il mojibake è il fenomeno per cui un testo appare come una sequenza di caratteri privi di senso — spesso simboli, punti interrogativi o accenti fuori posto — al posto del contenuto originale. La causa non è quasi mai un danneggiamento del file, bensì un disaccordo fra la codifica con cui il testo è stato salvato e quella con cui viene poi letto: gli stessi byte, interpretati secondo una tabella di corrispondenza diversa da quella prevista, producono caratteri completamente diversi. In giapponese il problema è particolarmente frequente perché convivono da decenni più codifiche storiche — UTF-8, Shift_JIS ed EUC-JP — spesso senza che l'informazione su quale sia stata usata venga trasmessa insieme al file.

Questo strumento affronta il problema con la forza bruta: prova tutte le combinazioni plausibili fra le codifiche più diffuse e assegna a ciascun risultato un punteggio in base a quanto somiglia a un giapponese o a un testo ASCII leggibile, mostrando in cima le ricostruzioni più promettenti. Non tutti i casi, però, sono recuperabili: se una parte della sequenza di byte originaria è già andata perduta durante la prima decodifica errata — riconoscibile da una fila di punti interrogativi o di rombi «�» — il ripristino a livello di solo testo non è più possibile per principio, qualunque combinazione si provi. Se invece conoscete già con certezza la coppia di codifiche coinvolta, la scheda della conversione esplicita permette di ottenere il risultato direttamente, senza affidarsi al punteggio automatico.

Come utilizzare lo strumento

  1. Incollare il testo corrotto Copiate il testo con i caratteri corrotti e incollatelo nella scheda del ripristino automatico. L'elaborazione avviene interamente nel navigatore: nulla viene inviato a un servente esterno.
  2. Esaminare le ricostruzioni proposte Lo strumento mostra un elenco di ricostruzioni possibili, ordinate per plausibilità. Cercate il contrassegno «ipotesi più probabile»: nella maggior parte dei casi è quella la ricostruzione corretta.
  3. Passare alla conversione esplicita se necessario Se nessuna ricostruzione appare convincente, aprite la scheda della conversione esplicita e indicate voi stessi la codifica con cui il testo appare corrotto e quella originaria.
  4. Riaprire il file con la codifica corretta Se il testo resta illeggibile anche così, il problema può risiedere nel file di origine: riapritelo in un editor di testo specificando esplicitamente la codifica giusta invece di affidarvi a quella predefinita.

Consigli per sfruttarlo al meglio

  • Se compaiono più ricostruzioni, quella corretta è di norma la ricostruzione contrassegnata come ipotesi più probabile, cioè quella che restituisce il giapponese più naturale.
  • Le sequenze come «縺薙繧薙?...», frequenti nei programmi di posta e nei file CSV, si risolvono quasi sempre con la combinazione da UTF-8 a Shift_JIS.
  • Se il testo è degenerato in una successione di punti interrogativi o di rombi, è molto probabile che una parte della sequenza di byte originaria sia perduta e la ricostruzione dal solo testo diventa assai difficile.
  • La scheda della conversione esplicita permette di ottenere subito il risultato quando già conoscete la combinazione di codifiche da ripristinare.

Situazioni in cui è utile

Un file CSV ricevuto da un partner commerciale

Se una cella di un foglio di calcolo inviato da un'azienda giapponese mostra caratteri corrotti, incollatene qui il contenuto per capire il testo reale prima ancora di richiedere l'invio di un nuovo file.

Un'email di un vecchio programma di posta

Oggetto o corpo di un messaggio arrivato da un client di posta datato possono apparire come una sequenza incomprensibile: potete ricostruirli da soli, senza dover disturbare il mittente per chiedere spiegazioni.

Registri o record di un database

Quando l'impostazione della codifica di un sistema è cambiata nel tempo, log e record più vecchi possono risultare illeggibili: incollateli qui per verificarne il contenuto originale senza dover ripristinare l'intero sistema.

Esplorare le combinazioni di codifiche per capire il fenomeno

Usando la scheda della conversione esplicita su un testo di prova potete osservare direttamente quale coppia di codifiche produce quale tipo di corruzione, un esercizio utile per chi sviluppa software multilingue.

Glossario

UTF-8
La codifica Unicode più diffusa al mondo, capace di rappresentare qualunque lingua con una lunghezza variabile di byte per carattere. Ogni carattere giapponese comune occupa di norma tre byte.
Shift_JIS
Una codifica giapponese storica, diffusasi soprattutto con i sistemi Windows in Giappone. Rappresenta i caratteri a due byte e resta tuttora presente in molti file e programmi datati.
EUC-JP
Una codifica giapponese nata in ambiente Unix, un tempo largamente usata da serventi e software open source. Condivide con Shift_JIS gli intervalli di byte, ma con corrispondenze diverse.
JIS (ISO-2022-JP)
Una codifica basata esclusivamente su caratteri a sette bit, storicamente impiegata per la posta elettronica giapponese poiché compatibile con infrastrutture pensate solo per l'alfabeto latino.
Codifica dei caratteri
La regola che stabilisce la corrispondenza fra i byte memorizzati in un file e i caratteri effettivamente visualizzati. Se chi scrive e chi legge non concordano sulla regola, il testo si corrompe.
Mojibake irreversibile
Il caso in cui la sequenza di byte originaria è già andata perduta durante una prima decodifica errata, visibile come una fila di punti interrogativi o di rombi «�»: da quel punto in poi nessuna combinazione di codifiche può ricostruire il testo.

Domande frequenti

Accade quando la codifica con cui il testo è stato salvato differisce da quella presunta da chi lo legge. In giapponese si mescolano con particolare facilità UTF-8, Shift_JIS ed EUC-JP, e questo disaccordo è la causa principale del fenomeno.

No. In certi casi l'informazione della sequenza di byte originaria si perde già al momento della decodifica e dal solo testo non si può risalire all'originale. Il ripristino è particolarmente difficile quando caratteri giapponesi a due byte sono stati letti male come un'altra codifica giapponese, e i punti sostituiti da un punto interrogativo o da un rombo sono in linea di principio irrecuperabili.

La codifica oggi più diffusa è UTF-8, ma in Giappone alcuni sistemi datati e certe applicazioni per Windows presumono tuttora Shift_JIS. Poiché le sequenze di byte UTF-8 risultano spesso interpretabili anche come Shift_JIS valido, il testo si corrompe senza perdita d'informazione e in molti casi si può quindi ricostruire.

No. La conversione avviene interamente nel JavaScript del navigatore: potete usare lo strumento in sicurezza anche su testi che contengano parole d'ordine o dati personali.
Tool-kun

A proposito — perché «縺薙繧薙?縺ォ縺。縺ッ» è il simbolo dei testi giapponesi corrotti

Cercando notizie sui testi giapponesi corrotti si incontra immancabilmente la sequenza «縺薙繧薙?縺ォ縺。縺ッ», che in origine era il saluto «konnichiwa»: è diventata una sorta di icona culturale fra chi in Giappone usa Internet. Si tratta dello schema tipicissimo che compare quando un testo scritto in UTF-8 viene aperto con un'applicazione che presume Shift_JIS, come il vecchio blocco note di Windows o certi sistemi datati.

Questa combinazione ricorre così spesso perché il decodificatore Shift_JIS interpreta a forza come caratteri a due byte le sequenze di tre byte con cui UTF-8 rappresenta un carattere giapponese. Per pura coincidenza la maggior parte di esse ricade in intervalli interpretabili come caratteri Shift_JIS validi: non si genera dunque alcun errore e si crea la condizione peculiare di un testo che sembra irrimediabilmente corrotto ma è in realtà ricostruibile. È grazie a questa proprietà che il ripristino automatico di strumenti come questo riesce con alta probabilità.

Al contrario, in combinazioni come un testo scritto in Shift_JIS e aperto presumendo EUC-JP si producono spesso sequenze di byte non valide e l'informazione stessa va perduta: in quel caso la ricostruzione a livello di testo è impossibile per principio. Che la questione delle codifiche giapponesi abbia tormentato per anni chi lavora nell'informatica dipende proprio dalla convivenza di corruzioni recuperabili e corruzioni irrecuperabili.