Xcode (ou Smultron) et les BOM, ou comment les supprimer... ?
beaucoral.kevin
Membre
Hey bonjour la galerie,
Il y avait longtemps que je n'étais pas revenu , après mon application SokoBoihn qui était un genre de jeu de Sokoban, j'ai continué dans mes programmation, mais celle pour laquelle je suis le mieux alaise, c'est la programmation WEB (PHP/SQL, HTML/CSS, JAVA).
J'aurais aimé savoir quelques choses, comment on enlève, ou enregistre ses fichiers .php, sans les BOM, en utf-8 sans bom, car sur notepad++ avant quand je programmer sous Windows il y avait l'option mais sous Xcode ou sous Smultron, je trouve pas de manière.
Si quelqu'un pourrait m'aider, pour les enlevés, car les problèmes de header avec les cookies, c'est un peut chiant .
Merci d'avance pour votre aide.
Amicalement,
Kévin BEAUCORAL.
Il y avait longtemps que je n'étais pas revenu , après mon application SokoBoihn qui était un genre de jeu de Sokoban, j'ai continué dans mes programmation, mais celle pour laquelle je suis le mieux alaise, c'est la programmation WEB (PHP/SQL, HTML/CSS, JAVA).
J'aurais aimé savoir quelques choses, comment on enlève, ou enregistre ses fichiers .php, sans les BOM, en utf-8 sans bom, car sur notepad++ avant quand je programmer sous Windows il y avait l'option mais sous Xcode ou sous Smultron, je trouve pas de manière.
Si quelqu'un pourrait m'aider, pour les enlevés, car les problèmes de header avec les cookies, c'est un peut chiant .
Merci d'avance pour votre aide.
Amicalement,
Kévin BEAUCORAL.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Plus de details ici (en anglais) :
http://www.codefluent.com/documentation/BusinessObjectModelOverview.html
(Qu'est ce que le Business Object Model aurait à voir avec UTF-8, d'ailleurs ?)
"BOM" signifie "Byte-Order-Mark", et il s'agit d'un préfixe optionnel de deux octets, qui peut être placé au tout début d'un fichier UTF-8, pour indiquer s'il s'agit d'un fichier UTF-8 LE (LittleEndian) ou UTF8-8 BE (BigEndian), et donc savoir ensuite dans quel sens lire les couples d'octets.
Sauf que ce BOM pose bien souvent plus de problème qu'il ne rend de service, car peu de logiciels sont capables de le décoder, et en particulier les navigateur web se contentent bin souvent d'afficher ces deux octets du BOM au lieu de les interpréter comme il faut.
Je n'utilise pas Smultron pour ma part donc je ne peux pas trop te répondre, mais dans TextWrangler (l'éditeur de texte dont je suis habitué), quand tu fais "Enregistrer sous...", tu peux choisir l'encodage de texte avec lequel tu enregistres ton document. Parmi ces choix tu as entre autres "UTF-8" et "UTF-8 (No BOM)" justement, donc il suffit de choisir le bon. Je ne sais pas si Smultron est pareil.
Bon AliGator, je te remercie, mais en effet, comme toi et comme tu l'as dis moi aussi je suis habitué à Xcode / Smultron et passé sur un autre, surtout par rapport au couleur de syntax etc, c'est pas agréable pour l'oeil un truc tout blanc.
Enfin lorsque l'on est habitué à un logiciel surtout pour coder c'est pas facile de changer.
J'ai beau cherché sur internet, j'ai pas trouvé la réponse. Je penses que je vais essayé d'aller voir sur le site officiel de MAC et demandé à un spécialiste de Xcode pour savoir s'il y a pas possibilité de supprimé ces BOM qui servent à rien.
Car franchement ça commence à me lourder.
Et sinon il n'y aurait pas des logiciels pour les supprimés ces BOM ?
Sinon, il me semblais que quand Xcode manipulait des fichiers UTF-8, il ne rajoutais pas le BOM ?
Un Pomme-I sur le fichier (une fois le fichier sélectionné dans la partie gauche "Groups & Files" dans ton Xcode) te permettra, dans l'onglet "Général", de choisir le "File Encoding". En général par défaut c'est UTF-8. Si tu choisis autre chose (ou même si tu re-sélectionnes l'encodage actuel) dans le menu déroulant correspondant, il te propose de convertir ou réinterpréter le fichier pour le passer à cet encodage.
J'ai essayé, en créant un nouveau fichier totalement vierge dans Xcode (New File -> de type "empty file"), en tapant du texte dedans, en sauvant : j'ai pas le BOM dans le fichier sauvé.
*j'ai dit une bétise dans mon message précédent, le BOM fait 2 octets pour UTF-16, ce qui permet de préciser si c'est UTF-16 LE ou UTF-16 BE, mais en UTF-8 le BOM n'est non seulement pas obligatoire, et même pas recommandé, mais il fait 3 octets (0xEF 0xBB 0xBF).
Par contre j'aimerais savoir comment tu as fais pour voir si oui ou non tu avais les BOM, car moi je l'ai vois pas dans mes lignes de codes quand j'ouvre le fichier sur Xcode ou Smultron...
Maintenant, dans la plupart des éditeurs de texte, tu peux aussi voir la représentation hexa du fichier (donc sans passer par le terminal si t'es pas fan). Ou sinon il y a des outils spécialisés, comme HexFriend.
En fin de compte, c'est apparemment lorsque l'on fait un copier coller d'un fichier vers un autre qu'il met une signature BOM tout seul.
Car lorsque je crée mes sites internet généralement c'est le même squelette HTML, donc je copie et je colle dans d'un fichier "SQUELETTE" à chaque fois que je recrée une page, et en fait dès que j'ajoute des COOKIE, ça me met un problème de header dans ma page à la ligne des COOKIE et ça c'est à cause des petit octes de BOM, de cette signature de merde.
Car en effet en recréant des fichiers sans copier coller en mettant juste un pti script php qui faisait des cookies l'erreur ne se montre pas, que ce soit en créant sous Xcode ou Smultron.
Merci à vous de votre aide néanmoins pour retrouver ces petites signature qui se cache contrairement à ce que vous disiez elle ne sont pas toujours au début du fichier ni tout à la fin, mais des fois caché dans de simple balise.
Et ça ce n'est pas vraiment la faute de l'éditeur de texte (à part pour le fait qu'il copie le BOM dans le presse-papier lors du "copier", mais en même temps, c'est ce qu'on lui demande, de tout copier même les caractères non-imprimables...), car c'est pas l'enregistrement de ton fichier en UTF-8 qui rajoute le BOM au moment de la sauvegarde, ici ces BOM sont "juste" des caractères non-imprimables que tu copies/colles et qui viennent donc "polluer" ton fichier.
Dans certains éditeurs de texte (comme TextWrangler, je sais pas pour Smultron), tu as des options pour supprimer ces caractères non-imprimables puisque justement par définition ces caractères n'apparaissent pas... et foutent souvent la zone :P
Donc tu as en général des options genre "Zap Gremlins" (oui, ces caractères non imprimables certains les appellent des "gremlins" :P) qui proposent soit de supprimer ces caractères gênants, soit de les remplacer par autre chose (un "?" ou un "¿" ou un "•" par exemple) pour les rendre visibles.
A défaut, tu as aussi parfois dans certains éditeurs de texte la possibilité de montrer les caractères invisibles ("Show Invisibles"), ce qui permet de mettre en avant visuellement les tabulations et les espaces (pour les différencier facilement) ou justement les caractères imprimables comme le BOM.
A une prochaine