Como definir a codificação padrão no Visual Studio

99

Estou procurando uma maneira de configurar o Visual Studio para que ele sempre salve meus arquivos em UTF-8.

Eu só encontrei opções para definir este projeto como um todo. Existe uma maneira de configurá-lo para todo o Visual Studio?

Thomaschaaf
fonte
31
Onde você encontrou as opções para definir este projeto como um todo?
Marc

Respostas:

64

Deseja que os arquivos sejam salvos como UTF-8 porque está usando caracteres especiais que seriam perdidos na codificação ASCII? Se for esse o caso, existe uma configuração global do VS2008 em Tools > Options > Environment > Documents, com o nome Save documents as Unicode when data cannot be saved in codepage. Quando ativado, o VS2008 será salvo como Unicode se certos caracteres não puderem ser representados na página de código padrão.

Além disso, quais arquivos não estão sendo salvos como UTF-8? Todos os meus .cs, .csproj, .sln, .config, .as * x, etc, todos salvos como UTF-8 (com assinatura, as marcas de ordem de byte), por padrão.

Samuel Meacham
fonte
2
Obrigado pela dica de configuração. Tive este problema com arquivos xaml, que causou erro durante a compilação
surfen
Olá, você sabe por que o Report Designer altera o atributo de codificação para utf-8? stackoverflow.com/questions/30071846/…
Mohammadreza
2
Ainda não há solução melhor? Meu VS2015 continua redefinindo a página de código após cada travamento, e com minha eletricidade isso acontece com bastante frequência, é triste, como a Microsoft chegou a isso, como eles podem fazer o melhor IDE e esquecer a configuração da página de código padrão, que pena ((
Movsar Bekaev
2
Quando você define o Unicode, ele realmente usa UTF-8 ou UTF-16?
binki
9
O problema é que os dados PODEM ser salvos na página de códigos padrão do sistema. Mas outro software nem sempre pode ler as fontes na página de código do meu sistema. Portanto, procuro a maneira de forçar o VS a salvar todos os arquivos de texto em UTF-8 por padrão. Não tenho ideia de por que diabos alguém quer salvar dados de texto em uma página de código diferente de UTF-8.
BlackOverlord
19

o que

Isso é possível com EditorConfig .

EditorConfig ajuda os desenvolvedores a definir e manter estilos de codificação consistentes entre diferentes editores e IDEs.

Isso também inclui a codificação do arquivo.

EditorConfig é integrado ao Visual Studio 2017 por padrão, e havia plug-ins disponíveis para versões tão antigas quanto VS2012. Leia mais na página EditorConfig Visual Studio Plugin .

Quão

Você pode definir um arquivo de configuração EditorConfig alto o suficiente em sua estrutura de pastas para abranger todos os repositórios pretendidos (até a raiz da unidade, caso seus arquivos estejam realmente espalhados por todos os lugares) e definir a configuraçãocharset :

charset : defina como latin1, utf-8, utf-8-bom, utf-16be ou utf-16le para controlar o conjunto de caracteres.

Você pode adicionar filtros e exceções etc. em cada nível de pasta ou por nome / tipo de arquivo, se desejar um controle mais preciso.

Depois de configurados, os IDEs compatíveis devem agir automaticamente para tornar os arquivos correspondentes em conformidade com as regras definidas. Observe que o Visual Studio não converte automaticamente todos os seus arquivos, mas faz sua parte quando você trabalha com arquivos no IDE (abre e salva).

Qual o proximo

Embora você possa ter uma configuração para todo o Visual Studio, eu sugiro fortemente que ainda inclua uma raiz EditorConfig para o controle de versão da sua solução, para que as configurações explícitas sejam sincronizadas automaticamente para todos os membros da equipe também. O arquivo editorconfig da raiz da unidade pode ser o substituto caso algum projeto ainda não tenha seus próprios arquivos editorconfig configurados.

Imre Pühvel
fonte
4

Eu trabalho com Windows7.

Painel de controle - Região e idioma - Administrativo - Idioma para programas não Unicode.

Depois de definir "Alterar localidade do sistema" para inglês (Estados Unidos). Minha codificação padrão de vs2010 muda para Windows-1252. Foi gb2312antes.

Criei um novo .cpparquivo para um projeto C ++, após fazer o check-in do novo arquivo no TFS para mostrar a codificação do Windows-1252 na página de propriedades do arquivo.

user10959888
fonte
No Windows 10, há uma caixa de seleção com o rótulo "Beta: Use Unicode UTF-8 para oferecer suporte a idiomas mundiais". Quando eu verifico, posso abrir arquivos codificados com Windows-1252 no visual studio 2019. Mas só encontro essa configuração por causa dessa resposta. Obrigado!
Gean Ribeiro
1

Também não conheço uma configuração global, mas você pode tentar isto:

  1. Salve todos os modelos do Visual Studio em UTF-8
  2. Escreva uma macro / suplemento do Visual Studio que ouvirá o evento DocumentSaved e salvará o arquivo no formato UTF-8 (se já não estiver).
  3. Coloque um proxy em seu controle de origem que garantirá que os novos arquivos sejam sempre UTF-8.
Shay Erlichmen
fonte
2
3. pode ser uma má ideia, pois assim que você fizer o check-in de um arquivo, isso determinará que o seu arquivo não corresponde ao arquivo registrado. Bem, com subversão, pelo menos. Se fosse possível codificar o cheque e o check-in, isso não seria um problema.
TamusJRoyce
Olá, você sabe por que o Report Designer altera o atributo de codificação para utf-8? stackoverflow.com/questions/30071846/…
Mohammadreza