Comment faire Notepad pour sauvegarder du texte en UTF-8 sans BOM?

j'ai un fichier CSV avec des accents spéciaux et je l'enregistre dans Notepad en sélectionnant L'encodage UTF-8. Quand je lis le fichier en utilisant Java, il lit les caractères BOM aussi.

donc je veux enregistrer ce fichier au format UTF-8 sans ajouter de BOM au départ dans le bloc-notes.

Sinon y a-t-il une classe intégrée en Java qui élimine les caractères BOM présents au début, lors de la lecture du contenu d'un fichier?

19
demandé sur Peter Mortensen 2011-12-08 18:32:56

6 réponses

  1. utiliser Notepad++ - libre et bien meilleur que Notepad. Il aidera à sauver le texte sans BOM en utilisant encodage > encodage en UTF-8 sans BOM : Screenshot of the Notepad++ Menubar  Encoding  Encode in UTF-8 without BOM menu in Notepad++ v6.7.9.2

  2. lorsque j'ai rencontré ce problème en Java, je n'ai trouvé aucune bibliothèque pour analyser ces trois premiers octets (BOM). Donc mon conseil:

    • utiliser PushbackInputStream(in, 3) .
    • lire les trois premiers octets
    • Si ce n'est pas de la NOMENCLATURE ( EF BB BF ), de le repousser
    • traiter le flux en tant que UTF-8
30
répondu korifey 2015-07-10 12:49:28

utilisez le bloc-notes++ à la place. Voir mon post de blog personnel sur elle. À partir du bloc-notes++, choisissez le menu "encodage", puis"Encoder en UTF-8 sans BOM".

9
répondu ziesemer 2011-12-08 14:38:21

je viens d'apprendre de ce post de débordement de pile , comme @martin-geisler le souligne, que vous pouvez enregistrer des fichiers sans le BOM dans le bloc-notes de Windows, par en sélectionnant ANSI comme encodage.

je suppose que pour les utilisations plus avancées cela ne fonctionnera pas parce que le fichier résultant n'est probablement pas l'encodage final souhaité, mais en fait ANSI; mais j'ai testé et confirmé que cela fonctionne pour sauver un très petit .php script sans BOM utilisant uniquement le bloc-notes.

j'ai appris à mes dépens que Bloc-notes de Windows n'est pas un véritable éditeur, bien que je voudrais faire remarquer à d'autres que, malgré cela, c'est de façon trompeuse appelé lorsque vous tapez" editor " sur de nouvelles machines Windows, au moins sur l'une des miennes.

j'utilise actuellement Emacs et d'autres éditeurs pour résoudre ce problème.

8
répondu olaf atchmi 2017-05-23 11:55:07

la réponse est: pas du tout. Notepad ne peut pas faire ça.

en Java, vous pouvez simplement sauter le premier byte dans votre entrée et être fait.

0
répondu Angelo Fuchs 2011-12-08 18:59:14

vous pouvez essayer Notepad2 ou Notepad++ . Ces remplacements de bloc-notes ont l'option pour vous de choisir si la sortie BOM.

quant à une solution Java, autant que je sache, Java ne comprend pas la norme UTF-8. J'ai googlé et trouvé L'écriture UTF-8 de Java et Unicode est cassée - utilisez cette correction qui pourrait être la solution.

0
répondu Jeow Li Huan 2015-05-09 17:11:58

nous utilisons l'utilitaire BOMStripperInputStream.java pour enlever le BOM de notre entrée si présent.

0
répondu Thomas 2015-05-09 17:13:57