Как установить стандартную кодировку в Visual Studio

101

Я ищу способ настроить Visual Studio, чтобы он всегда сохранял мои файлы в UTF-8.

Я нашел только варианты, чтобы расширить этот проект. Есть ли способ установить его в Visual Studio?

Thomaschaaf
источник
33
Где вы нашли возможности для расширения этого проекта?
Marc

Ответы:

66

Вы хотите, чтобы файлы сохранялись как UTF-8, потому что вы используете специальные символы, которые будут потеряны при кодировке ASCII? Если это так, то есть глобальная настройка VS2008 с Tools > Options > Environment > Documentsименем Save documents as Unicode when data cannot be saved in codepage. Когда этот параметр включен, VS2008 будет сохранять как Unicode, если определенные символы не могут быть представлены в кодовой странице по умолчанию.

Кроме того, какие файлы не сохраняются как UTF-8? Все мои .cs, .csproj, .sln, .config, .as * x и т.д. по умолчанию сохраняются как UTF-8 (с подписью, отметками порядка байтов).

Сэмюэл Мичем
источник
2
Спасибо за совет по настройке. У меня была эта проблема с файлами xaml, которая вызвала ошибку во время компиляции
surfen
Привет, вы знаете, почему конструктор отчетов меняет атрибут кодировки на utf-8? stackoverflow.com/questions/30071846/…
Мохаммадреза
2
Все еще нет лучшего решения? Мой VS2015 продолжает сбрасывать кодовую страницу после каждого сбоя, и с моим электричеством это случается довольно часто, так грустно, как Microsoft пришла к этому, как они могут сделать лучшую IDE и забыть о настройке кодовой страницы по умолчанию, как жаль ((
Мовсар Бекаев
2
Когда вы устанавливаете Unicode, действительно ли он использует UTF-8 или UTF-16?
binki
9
Проблема в том, что данные МОЖНО сохранить в системной кодовой странице по умолчанию. Но другое программное обеспечение не всегда может читать источники в моей системной кодовой странице. Поэтому я ищу способ заставить VS сохранять все текстовые файлы в UTF-8 по умолчанию. Я понятия не имею, какого черта кто-то хочет сохранять текстовые данные в кодовой странице, отличной от UTF-8.
BlackOverlord 05
20

Какие

Это возможно с EditorConfig .

EditorConfig помогает разработчикам определять и поддерживать согласованные стили кодирования для разных редакторов и IDE.

Это также включает кодировку файлов.

EditorConfig по умолчанию встроен в Visual Studio 2017, и у меня были плагины для таких старых версий, как VS2012. Подробнее читайте на странице EditorConfig Visual Studio Plugin .

Как

Вы можете установить файл конфигурации EditorConfig на достаточно высоком уровне в структуре папок, чтобы охватить все предполагаемые репозитории (вплоть до корня диска, если ваши файлы действительно разбросаны повсюду) и настроить параметрcharset :

charset : установите latin1, utf-8, utf-8-bom, utf-16be или utf-16le для управления набором символов.

Вы можете добавлять фильтры, исключения и т. Д. На каждом уровне папки или по имени / типу файла, если хотите более точный контроль.

После настройки совместимые IDE должны автоматически делать это, чтобы соответствующие файлы соответствовали установленным правилам. Обратите внимание, что Visual Studio не конвертирует все ваши файлы автоматически, но вносит свой вклад, когда вы работаете с файлами в среде IDE (открывайте и сохраняйте).

Что дальше

Хотя у вас может быть настройка для всей Visual Studio, я настоятельно рекомендую по-прежнему включать корень EditorConfig в систему управления версиями вашего решения, чтобы явные настройки также автоматически синхронизировались со всеми членами команды. Корневой файл editorconfig вашего диска может быть запасным вариантом, если в каком-то проекте еще не настроены собственные файлы editorconfig.

Имре Пювель
источник
5

Работаю с Windows7.

Панель управления - Регион и язык - Административные - Язык для программ, не поддерживающих Юникод.

После того, как я установил «Изменить язык системы» на английский (США). Моя кодировка по умолчанию vs2010 изменилась на Windows-1252. Это было gb2312раньше.

Я создал новый .cppфайл для проекта C ++ после того, как вернул новый файл в TFS, кодировка показывает Windows-1252 со страницы свойств файла.

user10959888
источник
В Windows 10 есть один флажок с надписью «Бета: использовать Unicode UTF-8 для поддержки мировых языков». Когда я его проверяю, я могу открывать файлы с кодировкой Windows-1252 в Visual Studio 2019. Но я нахожу эту конфигурацию только потому, что это ответ. Благодарность!
Gean Ribeiro
1

Я тоже не знаю глобальных настроек, но вы можете попробовать следующее:

  1. Сохраните все шаблоны Visual Studio в UTF-8
  2. Напишите макрос / надстройку Visual Studio, который будет прослушивать событие DocumentSaved и сохранять файл в формате UTF-8 (если это еще не сделано).
  3. Поместите прокси в исходный элемент управления, который будет гарантировать, что новые файлы всегда будут в формате UTF-8.
Шай Эрлихмен
источник
2
3. может быть плохой идеей, поскольку как только вы вернете файл, он определит, что ваш файл не соответствует зарегистрированному файлу. Ну, по крайней мере, с подрывной деятельностью. Если бы можно было закодировать и чек, и чек-ин, то это не было бы проблемой.
TamusJRoyce 09
Привет, вы знаете, почему конструктор отчетов меняет атрибут кодировки на utf-8? stackoverflow.com/questions/30071846/…
Мохаммадреза