Come impostare la codifica standard in Visual Studio


99

Sto cercando un modo per configurare Visual Studio in modo che salvi sempre i miei file in UTF-8.

Ho trovato solo le opzioni per impostare questo progetto su tutto. C'è un modo per impostarlo a livello di Visual Studio?


31
Dove hai trovato le opzioni per impostare questo progetto su vasta scala?
Marc

Risposte:


64

Vuoi che i file vengano salvati come UTF-8 perché stai usando caratteri speciali che andrebbero persi nella codifica ASCII? Se è così, allora c'è un'impostazione globale VS2008 in Tools > Options > Environment > Documents, denominata Save documents as Unicode when data cannot be saved in codepage. Quando è abilitato, VS2008 salverà come Unicode se alcuni caratteri non possono essere rappresentati nella tabella codici altrimenti predefinita.

Inoltre, quali file non vengono salvati come UTF-8? Per impostazione predefinita, tutti i miei .cs, .csproj, .sln, .config, .as * x, ecc. Vengono salvati come UTF-8 (con firma, i segni dell'ordine dei byte).


2
Grazie per il suggerimento per l'impostazione. Ho avuto questo problema con i file xaml, che ha causato un errore durante la compilazione
naviga il

Ciao, sai perché Report Designer cambia l'attributo di codifica in utf-8? stackoverflow.com/questions/30071846/…
Mohammadreza

2
Ancora nessuna soluzione migliore? Il mio VS2015 continua a reimpostare la tabella codici dopo ogni arresto anomalo e con la mia elettricità questi accadono abbastanza spesso, così triste, come Microsoft è arrivata a questo, come possono creare il miglior IDE e dimenticare l'impostazione della tabella codici predefinita, che peccato ((
Movsar Bekaev

2
Quando imposti Unicode, utilizza effettivamente UTF-8 o UTF-16?
binki

9
Il problema è che i dati POTREBBERO essere salvati nella tabella codici di sistema predefinita. Ma altri software non possono sempre leggere le fonti nella tabella codici del mio sistema. Pertanto cerco il modo per forzare VS salvare tutti i file di testo in UTF-8 per impostazione predefinita. Non ho idea del motivo per cui qualcuno vuole salvare i dati di testo in una tabella codici diversa da UTF-8.
BlackOverlord

19

Che cosa

È possibile con EditorConfig .

EditorConfig aiuta gli sviluppatori a definire e mantenere stili di codifica coerenti tra diversi editor e IDE.

Ciò include anche la codifica dei file.

EditorConfig è Visual Studio 2017 integrato per impostazione predefinita e c'erano plugin disponibili per versioni vecchie come VS2012. Ulteriori informazioni dalla pagina EditorConfig Visual Studio Plugin .

Come

È possibile impostare un file di configurazione EditorConfig abbastanza in alto nella struttura delle cartelle da includere tutti i repository previsti (fino alla radice del disco nel caso in cui i file siano davvero sparsi ovunque) e configurare l' impostazionecharset :

charset : impostato su latin1, utf-8, utf-8-bom, utf-16be o utf-16le per controllare il set di caratteri.

È possibile aggiungere filtri ed eccezioni ecc. Su ogni livello di cartella o per nome / tipo di file se si desidera un controllo più preciso.

Una volta configurati, gli IDE compatibili dovrebbero automaticamente fare ciò che è necessario per rendere i file corrispondenti conformi per impostare le regole. Nota che Visual Studio non converte automaticamente tutti i tuoi file ma fa la sua parte quando lavori con i file in IDE (apri e salva).

E dopo

Sebbene tu possa avere una configurazione a livello di Visual Studio, consiglio vivamente di includere comunque una radice EditorConfig nel controllo della versione della soluzione, in modo che le impostazioni esplicite vengano sincronizzate automaticamente anche con tutti i membri del team. Il file editorconfig di root dell'unità può essere il fallback se alcuni progetti non hanno ancora i propri file editorconfig configurati.


4

Lavoro con Windows7.

Pannello di controllo - Regione e lingua - Amministrativo - Lingua per programmi non Unicode.

Dopo aver impostato "Cambia impostazioni locali del sistema" su Inglese (Stati Uniti). La mia codifica predefinita di vs2010 cambia in Windows-1252. È stato gb2312prima.

Ho creato un nuovo .cppfile per un progetto C ++, dopo aver archiviato il nuovo file in TFS, la codifica mostra Windows-1252 dalla pagina delle proprietà del file.


In Windows 10 ha una casella di controllo con l'etichetta "Beta: usa Unicode UTF-8 per supportare le lingue del mondo". Quando lo controllo, posso aprire i file che codificano con Windows-1252 su Visual Studio 2019. Ma trovo questa configurazione solo perché questa risposta. Grazie!
Gean Ribeiro

1

Non conosco nessuna impostazione globale, ma puoi provare questo:

  1. Salva tutti i modelli di Visual Studio in UTF-8
  2. Scrivi una macro / componente aggiuntivo di Visual Studio che ascolterà l'evento DocumentSaved e salverà il file in formato UTF-8 (se non lo è già).
  3. Metti un proxy sul tuo controllo del codice sorgente che assicurerà che i nuovi file siano sempre UTF-8.

2
3. può essere una cattiva idea, poiché non appena si archivia un file, determinerà che il file non corrisponde al file archiviato. Beh, almeno con la sovversione. Se fosse possibile codificare sia il check-in che il check-in, questo non sarebbe un problema.
TamusJRoyce

Ciao, sai perché Report Designer cambia l'attributo di codifica in utf-8? stackoverflow.com/questions/30071846/…
Mohammadreza
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.