Какова кодировка по умолчанию для исходных файлов в visual studio 2017

кажется, visual studio 2017 всегда сохраняет новые файлы как UTF8-BOM. Также кажется, что это не так с более ранними версиями visual studio, но я не смог найти никакой документации.

также была опция "Advanced Save OptionsEncoding", которая позволила изменить кодировку вновь сохраненных файлов, которая отсутствует в VS2017.

вопросы:

  • все типы файлов сохраняются с кодировкой UTF8-BOM в VS2017
  • это возможно настроить кодировку для новых файлов в VS2017
  • будет VS2017 изменить кодировку "старых" файлов, которые не имеют UTF8-BOM
  • есть ли какая-либо документация по этой теме

4 ответов


также была опция "Advanced Save Options\Encoding", которая позволили ли изменить кодировку вновь сохраненных файлов, которая отсутствует в VS2017.

эта функция уже существует! Вы можете сохранять файлы с определенной кодировкой символов для поддержки двунаправленных языков. Можно также указать кодировку при открытии файла, чтобы Visual Studio отображала файл правильно.

save a file with encoding

сохранить файл с кодировкой

  1. С выберите Сохранить Файл Как, а потом нажмите кнопка раскрывающегося списка рядом с кнопкой Сохранить. Дополнительные Параметры Сохранения откроется диалоговое окно.
  2. в поле кодировка выберите кодировку для файла.
  3. дополнительно в разделе окончания строк выберите формат для конец строки письмена.

все типы файлов сохраняются с кодировкой UTF8-BOM в VS2017

в моем случае VS хранит все файлы с кодовая страница 1252 кодировка.

можно ли настроить кодировку для новых файлов в VS2017

однако моя версия Visual Studio-15.6.1, и у некоторых людей такая же проблема, как и у вас в предыдущих версиях 2017, но они сказал "мы исправили эту проблему, и она доступна в Visual Studio 2017 15.3"

если не работает, для проектов C++ взгляните на / utf-8 (установить исходные и исполняемые наборы символов в UTF-8).

изменит ли VS2017 кодировку "старых" файлов, у которых нет В UTF8 СПЕЦИФИКАЦИИ

по умолчанию Visual Studio обнаруживает метку порядка байтов, чтобы определить, закодирован ли исходный файл Формат Unicode, например UTF-16 или UTF-8. Если метка порядка байтов не найдена, предполагается, что исходный файл закодирован с помощью текущей кодовой страницы пользователя, если только вы не указали кодовую страницу с помощью параметра / utf-8 или /source-charset. некоторые люди столкнулись с проблемой, который приехал из .editorconfig файл, как показано ниже:

root = true

[*] indent_style = tab indent_size = 4 tab_width = 4 trim_trailing_whitespace = true insert_final_newline = true charset = utf-8 

эта последняя строка кодировки, вероятно, делает это... но я не прошу "utf-8-with-bom"!


можно использовать EditorConfig С charset свойство для определения кодировки исходных файлов в VS 2017.


по-видимому, опция " Advanced Save Options\Encoding "была удалена из меню" Файл " из-за необычного использования. Это была причина, приведенная членом команды Visual Studio (посмотреть этот).

опция все еще существует,но вам нужно сделать пару дополнительных кликов.

  1. в полосе меню выберите Файл - > Сохранить как
  2. при появлении диалогового окна сохранить файл кнопка Сохранить имеет стрелку вниз. Щелкнуть его.
  3. выберите Сохранить с Кодирование...

enter image description here

как только вы сохраните файл в определенном формате (я считаю, что тот, который вы ищете, это Unicode (UTF-8 without signature) - Codepage 65001), Visual Studio теоретически не должна менять его по прихоти.

Теперь вот проблема, хотя, как только вы удалите BOM, ни один читатель не может действительно знать со 100% уверенностью, что данный текстовый файл на самом деле UTF-8. Это просто от наблюдения за поведением, но если вы идете и сохраняете как с кодировкой... и выберите
Unicode (UTF-8 without signature) - Codepage 65001 (который является UTF8 без спецификации), спецификация будет удалена.....однако, когда вы закрываете файл и снова открываете его, а затем снова переходите к дополнительным параметрам сохранения, Вы заметите, что Visual Studio предположила, что текстовый формат CodePage 1252. Файл, конечно, будет совершенно корректным, поскольку он отображает каждое возможное значение байта на какой-то символ, но это может дать вам странные результаты в некоторых крайних случаях.

одна вещь, которую он не будет делать, это добавить BOM обратно (по крайней мере, я никогда видел). Надеюсь, это поможет.


Регистрация Исправить Кодировку Файла расширение, которое запрещает Visual Studio 2017/2015/2013/2012 добавлять спецификации в файлы UTF-8.

обычно при редактировании файла UTF-8 в Visual Studio он добавляет последовательность знаков порядка байтов (BOM) 0xEF, 0xBB, 0xBF до начала папка. Иногда это путает другие приложения дальнейшей обработки папка. Вы можете выбрать кодировку вручную (File-Advanced Save Опции... или Файл > Сохранить как... > Сохранить с Кодирование...), но нужно делать это каждый раз, когда вы открываете файл

кроме того, это расширение ответит на большинство ваших вопросов.

Fix File Encoding автоматически определяет, когда файл UTF-8 открывается в Visual Studio и устанавливает его кодировку в UTF-8 без подписи. Если вы не редактируйте файл, он остается неизмененным. Если вы редактируете файл, он будет сохранен без спецификации.

Fix File Encoding позволяет настроить, какие файлы для кодирования на основе путь к файлу и расширение файла. Только по умолчанию .htm и .формат html файлы защищены от Visual Studio.