Cómo configurar la codificación estándar en Visual Studio

99

Estoy buscando una forma de configurar Visual Studio para que siempre guarde mis archivos en UTF-8.

Solo he encontrado opciones para configurar este proyecto de forma amplia. ¿Hay alguna forma de configurarlo en Visual Studio?

Thomaschaaf
fuente
31
¿Dónde encontraste las opciones para ampliar este proyecto?
Marc

Respuestas:

64

¿Quiere que los archivos se guarden como UTF-8 porque está utilizando caracteres especiales que se perderían en la codificación ASCII? Si ese es el caso, entonces hay una configuración global VS2008 en Tools > Options > Environment > Documents, llamadaSave documents as Unicode when data cannot be saved in codepage . Cuando está habilitado, VS2008 se guardará como Unicode si ciertos caracteres no se pueden representar en la página de códigos predeterminada.

Además, ¿qué archivos no se guardan como UTF-8? Todos mis .cs, .csproj, .sln, .config, .as * x, etc., todos se guardan como UTF-8 (con firma, las marcas de orden de bytes), de forma predeterminada.

Samuel Meacham
fuente
2
Gracias por el consejo de configuración. Tuve este problema con los archivos xaml, que causó un error durante la compilación
surfen
Hola, ¿sabe por qué el diseñador de informes cambia el atributo de codificación a utf-8? stackoverflow.com/questions/30071846/…
Mohammadreza
2
¿Todavía no hay una mejor solución? Mi VS2015 sigue restableciendo la página de códigos después de cada bloqueo, y con mi electricidad, eso sucede con bastante frecuencia, es triste, cómo Microsoft llegó a esto, cómo pueden hacer el mejor IDE y olvidarse de la configuración predeterminada de la página de códigos, qué lástima ((
Movsar Bekaev
2
Cuando configura Unicode, ¿realmente usa UTF-8 o UTF-16?
binki
9
El problema es que los datos PODRÍAN guardarse en la página de códigos predeterminada del sistema. Pero otro software no siempre puede leer las fuentes en la página de códigos de mi sistema. Por lo tanto, busco la forma de obligar a VS a guardar todos los archivos de texto en UTF-8 de forma predeterminada. No tengo idea de por qué diablos alguien quiere guardar datos de texto en una página de códigos que no sea UTF-8.
BlackOverlord
19

Qué

Es posible con EditorConfig .

EditorConfig ayuda a los desarrolladores a definir y mantener estilos de codificación consistentes entre diferentes editores e IDE.

Esto también incluye la codificación de archivos.

EditorConfig está integrado en Visual Studio 2017 de forma predeterminada, y había complementos disponibles para versiones tan antiguas como VS2012. Leer más en la página del complemento de Visual Studio EditorConfig .

Cómo

Puede configurar un archivo de configuración EditorConfig lo suficientemente alto en la estructura de su carpeta para abarcar todos sus repositorios previstos (hasta la raíz de su unidad en caso de que sus archivos estén realmente dispersos por todas partes) y configurar la configuracióncharset :

charset : configurado en latin1, utf-8, utf-8-bom, utf-16be o utf-16le para controlar el juego de caracteres.

Puede agregar filtros y excepciones, etc. en cada nivel de carpeta o por nombre / tipo de archivo si desea un control más preciso.

Una vez configurados, los IDE compatibles deberían hacer automáticamente lo necesario para que los archivos coincidentes se ajusten a las reglas establecidas. Tenga en cuenta que Visual Studio no convierte automáticamente todos sus archivos, pero hace su parte cuando trabaja con archivos en IDE (abrir y guardar).

Qué sigue

Si bien podría tener una configuración de Visual-studio, le sugiero encarecidamente que aún incluya una raíz de EditorConfig en el control de versión de su solución, de modo que la configuración explícita también se sincronice automáticamente con todos los miembros del equipo. El archivo editorconfig de la raíz de su unidad puede ser el respaldo en caso de que algún proyecto aún no tenga sus propios archivos editorconfig configurados.

Imre Pühvel
fuente
4

Trabajo con Windows7.

Panel de control - Región e idioma - Administrativo - Idioma para programas que no son Unicode.

Después de configurar "Cambiar configuración regional del sistema" en inglés (Estados Unidos). Mi codificación predeterminada de vs2010 cambia a Windows-1252. Fue gb2312antes.

Creé un nuevo .cpparchivo para un proyecto C ++, después de registrar el nuevo archivo en TFS, la codificación muestra Windows-1252 desde la página de propiedades del archivo.

usuario10959888
fuente
En Windows 10 tiene una casilla de verificación con la etiqueta "Beta: use Unicode UTF-8 para admitir idiomas del mundo". Cuando lo verifico, puedo abrir archivos codificados con Windows-1252 en Visual Studio 2019. Pero solo encuentro esta configuración porque esta respuesta. ¡Gracias!
Gean Ribeiro
1

Tampoco conozco una configuración global, pero puedes probar esto:

  1. Guarde todas las plantillas de Visual Studio en UTF-8
  2. Escriba una macro / complemento de Visual Studio que escuche el evento DocumentSaved y guarde el archivo en formato UTF-8 (si aún no lo está).
  3. Ponga un proxy en su control de fuente que se asegurará de que los archivos nuevos sean siempre UTF-8.
Shay Erlichmen
fuente
2
3. puede ser una mala idea, ya que tan pronto como registre un archivo, se determinará que su archivo no coincide con el archivo registrado. Bueno, con subversión, al menos. Si fuera posible codificar tanto el cheque como el check-in, entonces esto no sería un problema.
TamusJRoyce
Hola, ¿sabe por qué el diseñador de informes cambia el atributo de codificación a utf-8? stackoverflow.com/questions/30071846/…
Mohammadreza