Jak ustawić standardowe kodowanie w programie Visual Studio

101

Szukam sposobu na skonfigurowanie programu Visual Studio, aby zawsze zapisywał moje pliki w UTF-8.

Znalazłem tylko opcje, aby ustawić ten projekt szeroko. Czy istnieje sposób, aby ustawić go w programie Visual Studio?

Thomaschaaf
źródło
33
Gdzie znalazłeś opcje, aby rozszerzyć ten projekt?
Marc

Odpowiedzi:

66

Czy chcesz, aby pliki były zapisywane jako UTF-8, ponieważ używasz znaków specjalnych, które zostałyby utracone w kodowaniu ASCII? W takim przypadku istnieje globalne ustawienie VS2008 Tools > Options > Environment > Documentso nazwie Save documents as Unicode when data cannot be saved in codepage. Gdy ta opcja jest włączona, VS2008 zapisuje jako Unicode, jeśli pewne znaki nie mogą być reprezentowane na domyślnej stronie kodowej.

Ponadto, które pliki nie są zapisywane jako UTF-8? Wszystkie moje pliki .cs, .csproj, .sln, .config, .as * x itd. Są domyślnie zapisywane jako UTF-8 (z podpisem, kolejnością bajtów).

Samuel Meacham
źródło
2
Dzięki za wskazówkę dotyczącą ustawienia. Miałem ten problem z plikami xaml, który spowodował błąd podczas kompilacji
surfen
Cześć, czy wiesz, dlaczego projektant raportów zmienia atrybut kodowania na utf-8? stackoverflow.com/questions/30071846/…
Mohammadreza
2
Wciąż nie ma lepszego rozwiązania? Mój VS2015 resetuje stronę kodową po każdej awarii, a przy mojej elektryczności zdarza się to dość często, tak smutno, jak Microsoft do tego doszedł, jak mogą zrobić najlepsze IDE i zapomnieć o domyślnych ustawieniach strony kodowej, szkoda ((
Movsar Bekaev
2
Po ustawieniu Unicode, czy faktycznie używa on UTF-8 lub UTF-16?
binki
9
Problem polega na tym, że dane MOGĄ zostać zapisane na domyślnej stronie kodowej systemu. Ale inne oprogramowanie nie zawsze może czytać źródła na mojej stronie kodowej systemu. Dlatego szukam sposobu, aby zmusić VS domyślnie do zapisywania wszystkich plików tekstowych w UTF-8. Nie mam pojęcia, dlaczego do cholery ktoś chce zapisać dane tekstowe na stronie kodowej innej niż UTF-8.
BlackOverlord,
20

Co

Jest to możliwe dzięki EditorConfig .

EditorConfig pomaga programistom definiować i utrzymywać spójne style kodowania między różnymi edytorami i IDE.

Obejmuje to również kodowanie plików.

EditorConfig jest domyślnie wbudowany w Visual Studio 2017 i były dostępne wtyczki dla wersji tak starych jak VS2012. Przeczytaj więcej na stronie wtyczki EditorConfig programu Visual Studio .

W jaki sposób

Możesz ustawić plik konfiguracyjny EditorConfig wystarczająco wysoko w strukturze folderów, aby objąć wszystkie planowane repozytoria (aż do katalogu głównego dysku, jeśli pliki są naprawdę rozproszone wszędzie) i skonfigurować ustawieniecharset :

charset : ustaw na latin1, utf-8, utf-8-bom, utf-16be lub utf-16le, aby kontrolować zestaw znaków.

Możesz dodawać filtry i wyjątki itp. Na każdym poziomie folderu lub według nazwy / typu pliku, jeśli chcesz mieć lepszą kontrolę.

Po skonfigurowaniu kompatybilne IDE powinny automatycznie robić to, co pasujące pliki są zgodne z ustalonymi regułami. Zwróć uwagę, że program Visual Studio nie konwertuje automatycznie wszystkich plików, ale robi to trochę podczas pracy z plikami w IDE (otwórz i zapisz).

Co następne

Chociaż możesz mieć konfigurację obejmującą całe studio Visual Studio, zdecydowanie sugeruję, aby nadal dołączać katalog główny EditorConfig do kontroli wersji rozwiązania, aby jawne ustawienia były również automatycznie synchronizowane ze wszystkimi członkami zespołu. Twój plik editorconfig katalogu głównego dysku może być rezerwą, jeśli jakiś projekt nie ma jeszcze skonfigurowanych własnych plików editorconfig.

Imre Pühvel
źródło
5

Pracuję z Windows7.

Panel sterowania - Region i język - Administracyjny - Język programów innych niż Unicode.

Po ustawieniu „Zmień ustawienia regionalne” na angielski (Stany Zjednoczone). Moje domyślne kodowanie vs2010 zmieniło się na Windows-1252. To było gb2312wcześniej.

Utworzyłem nowy .cppplik dla projektu C ++, po wpisaniu nowego pliku do TFS pokaz kodowania Windows-1252 ze strony właściwości pliku.

user10959888
źródło
W systemie Windows 10 ma jedno pole wyboru z etykietą „Beta: użyj Unicode UTF-8 do obsługi języków świata”. Kiedy to sprawdzam, mogę otwierać pliki kodowane w Windows-1252 w Visual Studio 2019. Ale tę konfigurację znajduję tylko z powodu tej odpowiedzi. Dzięki!
Gean Ribeiro
1

Nie znam też ustawienia globalnego, ale możesz spróbować tego:

  1. Zapisz wszystkie szablony programu Visual Studio w UTF-8
  2. Napisz makro / dodatek programu Visual Studio, który będzie nasłuchiwał zdarzenia DocumentSaved i zapisze plik w formacie UTF-8 (jeśli jeszcze nie).
  3. Umieść serwer proxy w kontroli źródła, który zapewni, że nowe pliki zawsze będą miały format UTF-8.
Shay Erlichmen
źródło
2
3. może być złym pomysłem, ponieważ jak tylko zaewidencjonujesz plik, okaże się, że nie pasuje on do wpisanego pliku. Cóż, przynajmniej w przypadku działalności wywrotowej. Gdyby można było zakodować zarówno czek, jak i odprawę, nie byłoby problemu.
TamusJRoyce,
Cześć, czy wiesz, dlaczego projektant raportów zmienia atrybut kodowania na utf-8? stackoverflow.com/questions/30071846/…
Mohammadreza