without sublime convertir bom archivos java csv utf-8 notepad

java - convertir - utf-8 without bom sublime text



¿Cómo hacer el Bloc de notas para guardar texto en UTF-8 sin BOM? (6)

Tengo un archivo CSV con acentos especiales y lo guardo en el Bloc de notas seleccionando la codificación UTF-8. Cuando leo el archivo usando Java, también lee los caracteres de la lista de materiales.

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

De lo contrario, ¿hay alguna clase incorporada en Java que elimine los caracteres de la lista de materiales que aparecen al principio, al leer el contenido de un archivo?


  1. Use Notepad++ - gratis y mucho mejor que Notepad. Ayudará a guardar texto sin BOM usando Enconding > Encode en UTF-8 sin BOM :

  2. Cuando encontré este problema en Java, no he encontrado ninguna biblioteca para analizar estos primeros tres bytes (BOM). Así que mi consejo:

    • Utilice PushbackInputStream(in, 3) .
    • Lee los primeros tres bytes.
    • Si no es BOM ( EF BB BF ), empuje hacia atrás
    • Procesa el flujo como UTF-8

Acabo de enterarme de esta publicación de Desbordamiento de pila , como señala @ martin-geisler, que PUEDE guardar archivos sin la lista de materiales en el Bloc de notas de Windows, seleccionando ANSI como la codificación.

Supongo que para usos más avanzados esto no funcionará porque el archivo resultante probablemente no es la codificación final deseada, sino que en realidad es ANSI; pero probé y confirmé que esto funciona para guardar un script .php muy pequeño sin BOM utilizando solo el Bloc de notas.

Aprendí de la manera larga y difícil en 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, es erróneamente cuando se escribe "editor" en las máquinas más nuevas de Windows, al menos en uno de los mios

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



Estamos utilizando la utilidad BOMStripperInputStream.java para eliminar la lista de materiales de nuestra entrada, si está presente.


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

En Java, solo puede omitir el primer byte en su InputStream y listo.


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".