Как я могу заставить Visual Studio сохранять все файлы в формате UTF-8 без подписи на уровне проекта или решения? - PullRequest
11 голосов
/ 24 марта 2011

Я пытаюсь настроить проект VS c ++ таким образом, чтобы он мог быть скомпилирован gcc в Linux.Кажется, мне нужно, чтобы файлы были закодированы как UTF-8 без подписи (что не является значением по умолчанию).Можно ли установить что-то на уровне проекта или решения, чтобы после того, как кто-то открыл решение и сохранил свои изменения, файлы все еще были в формате UTF-8?

Обратите внимание, что это открытый проект, поэтому я не могу попросить всех изменить свои настройки Visual Studio.

Ответы [ 5 ]

17 голосов
/ 25 марта 2011

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.

1 голос
/ 30 марта 2011

в vs2010 должно быть в порядке, чтобы установить глобально - см .: UTF-8 без спецификации

получил только экспресс со мной в МО, и естественно, что это не имеет.Вздох.

0 голосов
/ 05 ноября 2012

Как я это сделал:

  1. написал небольшое приложение, вызывающее процесс без вывода сообщений с помощью Блокнота. Просто процесс в оболочке (с использованием System.Diagnostics)
  2. создал список файлов и файл foreach, открыл и сохранил как utf-8

потребовалось 20 минут на написание 1. и несколько минут на выполнение.
Я не могу думать об открытии и сохранении всех 300 файлов вручную

0 голосов
/ 30 марта 2011

Похоже, что Visual Studio угадывает кодировку символов на основе содержимого файла. Если вы добавляете стандартный заголовок комментария в каждый файл, и этот комментарий содержит однозначный символ UTF-8, VS должен поступить правильно Дополнительным преимуществом является то, что некоторые утилиты Linux также распознают файл как явно UTF-8.

0 голосов
/ 24 марта 2011

Не похоже, что это настройка, которую вы можете поместить в propertyPage.Лучшее, что я могу придумать, - это создать простой скрипт (как в по этой ссылке ), который запускается как шаг предварительной сборки и перезаписывает файлы.Это, вероятно, будет делать эту работу, пока сценарий будет храниться в проекте, но может быть очень раздражающим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...