Visual Studio удалит спецификацию, выбрав «Сохранить как ...» и выбрав «Сохранить с кодировкой ...» и выбрав «UTF-8 без подписи». Как только он будет сохранен без спецификации, VS не добавит его снова. К сожалению, сделать это значение по умолчанию для всех файлов в VS невозможно, и его необходимо выполнять вручную каждый раз, когда файл сохраняется в первый раз.
Если у вас установлен Cygwin, вы можете пакетно изменить существующие файлы с помощью этого небольшого скрипта:
find . -name "*.cpp" -exec vim -c "set nobomb" -c wq! {} \;
Или, если у вас нет Cygwin, но у вас есть vim, вы можете использовать этот пакетный скрипт.
for %%f in (*.cpp) do call vim -c "set nobomb" -c wq! %%f
Обратите внимание, что, выполняя это в пакетном скрипте, мне кажется, что мне нужно нажимать [return] каждый раз, когда выходит vim, чего нет в версии cygwin.