Che cos’è il mojibake?
Il mojibake sono caratteri illeggibili che nascono quando un testo viene salvato con una codifica e letto con un’altra. Il caso più comune è un testo UTF-8 letto per errore come Windows-1252 o ISO-8859-1. Ogni byte di un carattere speciale appare allora come un carattere a sé.
Cause frequenti
- La connessione al database usa
latin1, anche se i dati sono in UTF-8. - Il server web invia
charset=ISO-8859-1, ma la pagina è salvata in UTF-8. - Un programma di posta o di newsletter dichiara la codifica sbagliata.
- Un sito vecchio o un WordPress migrato di server mescola dati Latin-1 e UTF-8.
- Testo copiato tra programmi che si aspettano codifiche diverse.
Rovinato due volte: è
Se un testo già rovinato viene convertito male un’altra volta, nasce il mojibake doppio: è diventa prima è e poi è. Mojibuster riconosce anche questi livelli e ne corregge fino a tre in una volta.
Per sviluppatori: correggere la causa
- Imposta
<meta charset="utf-8">nell’HTML e invia l’intestazioneContent-Type: text/html; charset=utf-8. - Usa
utf8mb4in MySQL e MariaDB per le tabelle e la connessione (SET NAMES utf8mb4). - Salva i file sorgente in UTF-8 senza BOM.
- Converti il testo una sola volta: al confine tra il tuo sistema e il mondo esterno.
Domande frequenti
Che cosa significa il carattere �?
È il carattere di sostituzione U+FFFD. Un programma lo inserisce quando non riesce a leggere un byte. Il carattere originale è perso; Mojibuster mostra quante posizioni sono interessate.
Posso convertire anche codici HTML come è?
Sì. Attiva l’opzione Converti anche i codici HTML. Codici come è, è e è diventano caratteri veri.
Il mio testo viene salvato da qualche parte?
No. La correzione avviene nel tuo browser. Il testo non viene inviato né salvato.
Funziona con altre lingue?
Sì. Mojibuster corregge qualsiasi carattere letto male a partire da UTF-8, per esempio accenti spagnoli e francesi, dieresi tedesche, emoji o scrittura giapponese.