¿Cómo hacer que Notepad guarde texto en UTF-8 sin BOM?

Tengo un archivo CSV con acentos especiales y lo guardo en el Bloc de notas al seleccionar la encoding UTF-8. Cuando leo el archivo usando Java, también lee los caracteres de la BOM.

Así que quiero guardar este archivo en formato UTF-8 sin agregar una lista de materiales inicialmente en el Bloc de notas.

De lo contrario, ¿hay alguna clase incorporada en Java que elimine los caracteres BOM que se presentan al principio, cuando se leen los contenidos en un archivo?

  1. Use Notepad ++ – gratis y mucho mejor que Notepad. Le ayudará a guardar texto sin BOM usando Enconding > Encode en UTF-8 sin BOM : Captura de pantalla de Notepad ++ Barra de menú/> Codificación> Codificar en UTF-8 sin menú BOM en Notepad ++ v6.7.9.2″></p>
</li>
<li>
<p>  Cuando encontré este problema en Java, no encontré ninguna biblioteca para analizar estos primeros tres bytes (BOM).  Entonces mi consejo: </p>
<ul>
<li> Use <code>PushbackInputStream(in, 3)</code> . </li>
<li>  Lee los primeros tres bytes </li>
<li>  Si no es BOM ( <em>EF BB BF</em> ), retíralos </li>
<li>  Procesar la secuencia como UTF-8 </li>
</ul>
</li>
</ol>
</div>
</li><!-- #comment-## -->
<div class=

    Use Notepad ++ en su lugar. Ver mi blog personal en él. Desde Notepad ++, elija el menú “Codificación”, luego “Codificar en UTF-8 sin BOM”.

Acabo de aprender de esta publicación de Stack Overflow , como señala @ martin-geisler, que PUEDE guardar archivos sin la BOM en el Bloc de notas de Windows, seleccionando ANSI como la encoding.

Asumo que para usos más avanzados esto no funcionará porque el archivo resultante probablemente no sea la encoding final deseada, sino que en realidad ANSI; pero probé y confirmé que esto funciona para guardar un script .php muy pequeño sin BOM usando solo Notepad.

Aprendí larga y duramente que el Bloc de notas de Windows no es un verdadero editor, aunque me gustaría señalar a otros que, a pesar de esto, se llama de manera engañosa cuando se escribe “editor” en máquinas Windows más nuevas, al menos en uno de los míos.

Actualmente estoy usando Emacs y otros editores para resolver este problema.

La respuesta es: No, en absoluto. El Bloc de notas no puede hacer eso.

En Java, puedes omitir el primer byte en tu InputStream y estar listo.

Es posible que desee probar Notepad2 o Notepad ++ . Esos reemplazos de Bloc de notas tienen la opción de que elija si desea imprimir la lista de materiales.

En cuanto a una solución Java, hasta donde yo sé, Java no comprende el UTF-8 estándar. Busqué en Google y descubrí que la escritura UTF-8 y Unicode de Java están rotas: utilice esta solución que podría ser la solución.

Estamos utilizando la utilidad BOMStripperInputStream.java para quitar la BOM de nuestra entrada si está presente.