UTF-8 sem BOM

Eu tenho arquivos javascript que eu preciso que eles sejam salvos em UTF-8 (sem BOM), toda vez que eu convertê-los para o formato correto no Notepad ++ , eles são revertidos para UTF-8 com BOM quando eu abri-los no Visual Studio. Como posso impedir o VS2010 de fazer isso?

Outra pergunta, é UTF-8 sem assinatura no Visual Studio o mesmo que UTF-8 sem BOM?

BOM ou Byte Order Mark às vezes é muito chato. Visual Studio não altera o arquivo, a menos que você salve (como Hans disse).

E aqui está a solução para o seu problema: Se você deseja salvar um arquivo com outras codificações, selecione salvar como e estenda o botão salvar na checkbox de diálogo de arquivo e selecione “Salvar com codificação”. Ou se você quiser se livrar dessa configuração permanentemente, basta abrir o menu Arquivo e selecionar “Opções avançadas de salvamento” e lá você deve selecionar “UTF-8 sem assinatura” (e que também respondeu sua última pergunta :). Sim “UTF-8 sem assinatura” é o mesmo que sem BOM.

Eu criei a extensão de codificação de arquivo fixo que impede que o Visual Studio 2010 + de adicionar BOM aos arquivos UTF-8.

Agora com fotos.

  1. Vá para File -> Save As .

insira a descrição da imagem aqui

  1. Em seguida, no botão Salvar, clique no triângulo e clique em Save with Encoding.. .

insira a descrição da imagem aqui

  1. Clique em ok para replace o arquivo e, a partir da lista de codificações, localize UTF-8 Without signature -> Clique em OK .

insira a descrição da imagem aqui

Espero que isso economize algum tempo.

Infelizmente isso não funciona com arquivos csproj. Não há “Advanced save option” e mesmo que você o tenha configurado para “UTF-8 sem assinatura” para um arquivo cs, os arquivos csproj ainda serão salvos com o BOM. Se você usar o VSS, ele ainda reclamará dos arquivos do projeto.

Para o vs2010 c ++, haverá problemas com o UTF8 sem o BOM, quando os arquivos de origem contiverem caracteres multi-byte (por exemplo, chinês).

Esses caracteres não serão reconhecidos corretamente sem BOM e resultarão em falhas na conclusão.

Recentemente eu encontrei esta minúscula ferramenta de linha de comando que adiciona ou remove a BOM em arquivos codificados arbitrariamente UTF-8: UTF BOM Utils

Pequena desvantagem, você pode baixar apenas o código-fonte C ++ simples. Você tem que criar o makefile (com o CMake , por exemplo) e compilá-lo sozinho, os binários não são fornecidos nesta página. No entanto, para um desenvolvedor de software, isso não deve ser problema algum.

Mesmo com a solução de Dave81, o Visual Studio 2015 Community ainda estava revertendo meu arquivo para UTF8-BOM toda vez que eu salvava esse arquivo html.

Quando criei esse arquivo html, cliquei com o botão direito do mouse no projeto e selecionei “Add”, em seguida, adicionei um arquivo HTML.

Por padrão, o Visual Studio includeá uma tag em seu arquivo HTML.

Simplesmente remover a tag e aplicar a solução de Dave81 fez com que o problema desaparecesse desta vez.

Parece que o Visual Studio analisar seu arquivo html e quando ele vê essa marca converte o arquivo para UTF8-BOM, sem qualquer consideração para o formato de arquivo original (UTF8 sem BOM).

** Eu teria feito um comentário diretamente sob a solução de Dave81, mas eu não tinha pontos suficientes para fazer isso …

UTF-8 – Padrão “Salvar como” (sem assinatura) – Solicitação para include o padrão para UTF sem assinatura

O VS 2017 suporta nativamente o EditorConfig, portanto, uma solução recomendada é adicionar o arquivo .editorconfig à sua base de código e definir charset => utf-8 . Então, depois de salvar um arquivo, ele será salvo como UTF-8 sem BOM.