visual-studio-2010 visual - UTF-8 sin lista de materiales




brackets autocomplete (7)

Tengo archivos javascript que necesito que se guarden en UTF-8 (sin BOM), cada vez que los convierto en el formato correcto en Notepad ++ , se vuelven a convertir a UTF-8 con BOM cuando los abro en Visual Studio. ¿Cómo puedo evitar que VS2010 haga eso?

Otra pregunta, ¿es UTF-8 sin firma en Visual Studio lo mismo que UTF-8 sin BOM?


Answers

Incluso con la solución de Dave81, Visual Studio 2015 Community aún estaba revertiendo mi archivo a UTF8-BOM cada vez que guardaba ese archivo html.

Cuando creé ese archivo html, hice clic derecho en el proyecto y seleccioné "Agregar" y luego agregué un archivo HTML.

De forma predeterminada, Visual Studio incluirá una etiqueta <meta charset = "utf-8" /> en su archivo HTML.

Simplemente quitar la etiqueta y luego aplicar la solución de Dave81 hizo que el problema desapareciera de verdad esta vez.

Parece que Visual Studio analiza el archivo html y cuando ve esa etiqueta convierte el archivo a UTF8-BOM sin tener en cuenta el formato de archivo original (UTF8 sin BOM).

** Habría hecho un comentario directamente bajo la solución de Dave81, pero no tuve suficientes puntos para hacerlo ...


Creé la extensión Fix File Encoding que evita que Visual Studio 2010+ agregue BOM a archivos UTF-8.


BOM o Byte Order Mark a veces es bastante molesto. Visual Studio no cambia el archivo a menos que lo guarde (como dijo Hans).

Y aquí está la solución a su problema: si desea guardar un archivo con otras codificaciones, seleccione guardar como y amplíe el botón Guardar en el cuadro de diálogo de archivo y seleccione "Guardar con codificación". O si desea deshacerse de esta configuración permanentemente solo abra el menú Archivo y seleccione "Opciones de guardado avanzadas" y allí debe seleccionar "UTF-8 sin firma" (y eso también respondió su última pregunta :). Sí "UTF-8 sin firma" es lo mismo que sin BOM.


Ahora con imágenes.

  1. Ve a File -> Save As .

  1. Luego, en el botón Guardar, haga clic en triángulo y haga clic en Save with Encoding.. .

  1. Haga clic en Aceptar para sobrescribir el archivo y luego en la lista de codificaciones, busque UTF-8 Without signature -> Haga clic en OK .

Espero que esto te ahorre algo de tiempo.


Para vs2010 c ++, habrá problemas con UTF8 sin BOM, cuando los archivos fuente contengan caracteres de varios bytes (por ejemplo, chino).

Esos caracteres no se reconocerán correctamente sin BOM y darán como resultado una compilación fallida.


Lamentablemente, esto no funciona con los archivos csproj. No hay una "opción de guardado avanzada" y, aunque lo haya configurado en "UTF-8 sin firma" para un archivo cs, los archivos csproj aún se guardan con la lista de materiales. Si usa VSS, todavía se queja de los archivos del proyecto.


Use un XmlTextWriter y páselo al método Save () de XDocument, de esa manera puede tener más control sobre el tipo de codificación utilizada:

var doc = new XDocument(
    new XDeclaration("1.0", "utf-8", null),
    new XElement("root", new XAttribute("note", "boogers"))
);
using (var writer = new XmlTextWriter(".\\boogers.xml", new UTF8Encoding(false)))
{
    doc.Save(writer);
}

El constructor de la clase UTF8Encoding tiene una sobrecarga que especifica si se usa o no la BOM (marca de orden de bytes) con un valor booleano, en su caso false .

El resultado de este código se verificó utilizando Notepad ++ para inspeccionar la codificación del archivo.





visual-studio-2010 visual-studio byte-order-mark