Caso 1: � in un file che in realtà è a posto
Se un editor, un player o il browser mostra Perch� o citt�, di solito il file è salvato in Windows-1252 (ANSI) e viene letto come UTF-8. Il byte della lettera accentata non è valido in UTF-8, quindi il programma inserisce il carattere sostitutivo � in fase di visualizzazione. Il file contiene ancora il byte giusto.
Soluzione: trascina il file originale nel riquadro qui sopra. Mojibuster riconosce la codifica durante la lettura e converte il file in UTF-8. Importante: usa il file, non copiare il testo dal programma – copiandolo, il � diventa definitivo.
Caso 2: � o ? sono salvati nel testo
Se un programma ha salvato o inoltrato il testo con il carattere sostitutivo, il carattere originale è perso. Lo stesso vale per ?: i programmi lo inseriscono quando un carattere non esiste nella codifica di destinazione, per esempio salvando in ASCII o scrivendo in una colonna di database che non conosce la è.
Da lì non si può risalire a nulla, perché tutte le lettere accentate sono diventate lo stesso carattere: in perch? cos? non c’è più traccia di quali accenti ci fossero. Mojibuster ti dice quanti punti sono interessati invece di tirare a indovinare. Può aiutare solo la fonte: ripeti l’esportazione o usa un backup.
Cause tipiche dei punti interrogativi
- Database: la colonna o la connessione usa
latin1oascii, mentre i dati arrivano in UTF-8. MySQL sostituisce allora i caratteri sconosciuti con?– passa autf8mb4, vedi correggere caratteri UTF-8. - PowerShell 5.1:
Export-Csvscrive in ASCII per impostazione predefinita e sostituisce le lettere accentate con?. Aggiungi-Encoding UTF8. - Python:
encode('ascii', errors='replace')sostituisce i caratteri con?senza avvisare. - Console: il Prompt dei comandi di Windows mostra come
?i caratteri che la sua tabella codici non conosce. Di solito è sbagliata solo la visualizzazione, non il file.
Come capire in quale caso ti trovi
- Apri il file in un editor che mostra la codifica, come Notepad++. Se nella barra di stato compare “ANSI” o “Windows-1252”, è il caso 1.
- Trascina il file in Mojibuster. Se il risultato indica “Letto come Windows-1252 (ANSI)” e gli accenti sono tornati, era il caso 1.
- Se Mojibuster segnala caratteri persi, è il caso 2. A quel punto aiuta solo una nuova esportazione.
Un esempio tipico del caso 1 sono i sottotitoli: sottotitoli con caratteri strani. Se invece vedi sequenze come è al posto dei punti interrogativi, è un altro errore, e quasi sempre si corregge: è invece di è.
Domande frequenti
Mojibuster può ritrasformare i ? in lettere?
No. Un ? può stare per qualsiasi lettera: l’informazione non c’è più. Mojibuster non tocca quei punti, ma ti dice quanti sono.
Perché vedo � in un programma ma non in un altro?
Allora il file è a posto, e solo uno dei due programmi lo legge con la codifica sbagliata. Convertilo in UTF-8 con Mojibuster e lo mostreranno correttamente entrambi.
Che cos’è il carattere �?
È il carattere sostitutivo U+FFFD. I programmi lo inseriscono quando non riescono a leggere un byte come carattere. Segnala un errore di codifica e non fa parte del testo vero e proprio.