D’où vient le mot
Mojibake (文字化け) est un mot japonais : « moji » signifie « caractère » et « bake », « transformation ». Dans les années 1990, les ordinateurs japonais utilisaient plusieurs encodages en parallèle – Shift_JIS, EUC-JP et ISO-2022-JP –, si bien que les e-mails et pages web illisibles faisaient partie du quotidien. Le mot est resté et s’est répandu en anglais puis en français, où l’on parle aussi de « caractères bizarres » ou d’« accents cassés ».
Comment le mojibake apparaît
Un ordinateur enregistre le texte sous forme d’octets. L’encodage définit quels octets correspondent à quel caractère. En UTF-8, é est enregistré sous la forme des deux octets C3 A9. Un programme qui lit ces octets en Windows-1252 affiche un caractère par octet : Ã pour C3 et © pour A9.
Rien n’est perdu à cette étape : les octets sont toujours là, ils sont simplement mal lus. C’est pourquoi le mojibake se répare presque toujours : Mojibuster retransforme les mauvais caractères en octets et les relit correctement.
Mojibake
Déjà , Noël, garçon, tête – 5 €
Réparé
Déjà, Noël, garçon, tête – 5 €
Le mojibake dans d’autres langues
- Japonais :
縺薙s縺ォ縺。縺ッau lieu deこんにちは– de l’UTF-8 lu en Shift_JIS. Plus d’infos sur la page en japonais. - Chinois :
浣犲ソau lieu de你好– de l’UTF-8 lu en GBK. En chinois, on parle de 乱码 (luànmǎ, « code chaotique »). - Russe :
Приветau lieu deПривет– de l’UTF-8 lu en Windows-1251. Les Russes appellent ça « krakozyabry ». - Français, espagnol, allemand… :
é,çou€au lieu deé,çou€– la forme la plus répandue au monde.
Causes fréquentes
- Excel ouvre par double-clic un CSV en UTF-8 sans BOM comme s’il était en ANSI : caractères bizarres dans Excel.
- Un export CSV de boutique en ligne, de CRM ou de banque est ouvert avec le mauvais encodage : réparer un CSV.
- Un site ou un e-mail déclare un mauvais
charset, ou la connexion à la base de données utiliselatin1: réparer les caractères UTF-8. - Des sous-titres ont été enregistrés dans un ancien encodage : sous-titres avec accents cassés.
- Un texte déjà abîmé est converti une seconde fois – double mojibake comme
é.
Peut-on toujours le réparer ?
Presque toujours, tant que les octets sont intacts. Ce n’est plus possible lorsqu’un programme a remplacé les caractères par ? ou par le caractère de remplacement � : l’information d’origine est alors perdue. Mojibuster répare tout ce qui peut l’être, jusqu’à trois niveaux d’encodage à la fois, et vous indique combien de caractères sont perdus.
Comment l’éviter
- Enregistrez vos fichiers en UTF-8 – les CSV destinés à Excel au format CSV UTF-8 (délimité par des virgules), qui ajoute un BOM.
- Déclarez l’encodage :
<meta charset="utf-8">en HTML,utf8mb4dans MySQL et MariaDB. - Ne convertissez le texte qu’une seule fois, à la frontière entre deux systèmes.
- À l’import, choisissez vous-même l’encodage au lieu de laisser le programme deviner.
Questions fréquentes
Comment prononce-t-on mojibake ?
À peu près « mo-dji-ba-ké », en prononçant les quatre syllabes.
Mon fichier est-il endommagé ou infecté ?
Non. Le mojibake est un problème d’affichage, pas un virus, et il n’entraîne généralement aucune perte de données. Le fichier est simplement lu avec le mauvais encodage.
Quelle différence entre le mojibake et � ?
Les caractères bizarres comme é contiennent encore les octets d’origine et peuvent être réparés. Le symbole � signifie qu’un programme n’a pas pu lire un octet et l’a remplacé : ce caractère est perdu.
Mon texte est-il envoyé sur un serveur ?
Non. Mojibuster répare le texte dans votre navigateur. Il n’est ni transmis ni stocké.