URL: https://linuxfr.org/users/boa13/journaux/mozilla-corrupteur-de-donn%C3%A9es Title: Mozilla, corrupteur de données Authors: Boa Treize Date: 2004年11月28日T20:21:51+01:00 Tags: Score: 0 L'histoire est un peu compliquée. Au tout début, il y a des programmeurs essentiellement américain, qui considèrent que l'espace insécable ça casse tout, et que personne ne s'en sert. Du coup, ils s'en servent comme marqueur spécial dans l'éditeur de mail, pour indiquer une suite d'espaces qui se répètent : un espace sur deux est stocké en mémoire comme espace insécable. Bien sûr, au moment de l'envoi, ils convertissent tous les espaces insécables (qui ne servent pas, n'est-ce pas) en espaces, et le tour est joué, l'espacement préservé, passons à la suite. Ensuite, bien sûr, il y a toutes les autres parties de Mozilla qui se servent de ce bout de code : l'éditeur de formulaires, le visualisateur de code source de la page, la barre d'adresse, etc. Tout ce beau monde convertit les espaces insécables en espaces normales, parce que c'est bien connu, ça sert à rien. Le résultat est simple : Mozilla massacre allègrement tous les espaces insécables qui lui passent par la main. Vous tapez un beau mail ? Vos efforts sont vains. Vous éditez un wiki ? Dites au revoir à tous les espaces insécables que les autres utilisateurs ont saisi. Vous pensez qu'avec Unicode, on a enfin du support pour tous les caractères de la planète ? Oui, sauf l'espace insécable. Bref, Mozilla massacre les données qu'on lui confie, et sur ce coup là, je me trouverais presque à souhaiter qu'il ne prenne pas une trop grosse part de marché. Heureusement que j'ai Internet Explorer pour préserver mon travail. (Nan, je trolle, j'utilise Konqueror quand je tiens à mes données.) Si vous trouvez ce comportement un peu gênant, ou même complètement crétin, allez donc voter et mettre un peu d'activité sur le bug n°194498 de Mozilla : [https://bugzilla.mozilla.org/show_bug.cgi?id=194498(...)](https://bugzilla.mozilla.org/show_bug.cgi?id=194498) Et pour rire jaune une dernière fois, un extrait du code : void nsPlainTextSerializer::Output(nsString& aString) { (...) £spaces£ £/spaces£// First, replace all nbsp characters with spaces, £spaces£ £/spaces£// which the unicode encoder won't do for us. £spaces£ £/spaces£static PRUnichar nbsp = 160; £spaces£ £/spaces£static PRUnichar space = ' '; £spaces£ £/spaces£aString.ReplaceChar(nbsp, space); £spaces£ £/spaces£mOutputString->Append(aString); }