Bush hid the facts

Bush hid the facts est le nom courant d’un bug présent dans certaines applications Windows. Il s’agit d’un mojibake où un texte codé en ASCII est incorrectement interprété et affiché en UTF-16LE.

Description

Quand on écrit le texte précis «Bush hid the facts» (sans guillemet ni retour à la ligne) dans un fichier, qu’on l’enregistre avec le codage ASCII (ou son sur‐ensemble le codage CP1252, dit « ANSI », par défaut sur Windows) et qu’on l’ouvre à l’aide du logiciel « Bloc-Notes » de Windows, les caractères chinois «畂桳栠摩琠敨映捡獴» apparaissent à la place du texte d’origine[1].

Bien que «Bush hid the facts» soit le texte le plus connu qui provoque l’erreur, celle‐ci peut être causée par une multitude de textes possédant des lettres latines et des espaces à ces mêmes positions, par exemple «this app can break» et «aaaa aaa aaa aaaaa». Le texte «a » suffit même[1].

Origine

Le bug est provoqué par la fonction de détection de codage IsTextUnicode. Elle remarque que les octets forment un codage UTF-16LE valide de caractères chinois (bien que leur succession soit dénuée de sens en chinois) et en déduit à tort que c’est le cas[2].

Découverte

Le bug existe depuis l'introduction de la fonction en question en 1994, mais n'a pas été découvert avant [3].

Correctif

Windows Vista SP1 et les nouvelles versions du Bloc-Notes possèdent maintenant un correctif pour ce bogue.

On peut éviter le problème en enregistrant le texte en UTF-8 ou en UTF-16 plutôt qu’en « ANSI ».

Références

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Bush hid the facts » (voir la liste des auteurs).

Liens externes

Voir aussi