Comment définir le codage standard dans Visual Studio

99

Je recherche un moyen de configurer Visual Studio pour qu'il enregistre toujours mes fichiers en UTF-8.

Je n'ai trouvé que des options pour définir ce projet à l'échelle. Existe-t-il un moyen de le définir à l'échelle de Visual Studio?

Thomaschaaf
la source
31
Où avez-vous trouvé les options pour définir ce projet à l'échelle?
Marc

Réponses:

64

Voulez-vous que les fichiers soient enregistrés au format UTF-8 car vous utilisez des caractères spéciaux qui seraient perdus lors du codage ASCII? Si tel est le cas, il existe un paramètre global VS2008 dans Tools > Options > Environment > Documents, nommé Save documents as Unicode when data cannot be saved in codepage. Lorsque cette option est activée, VS2008 sera enregistré sous Unicode si certains caractères ne peuvent pas être représentés dans la page de codes par défaut.

De plus, quels fichiers ne sont pas enregistrés au format UTF-8? Tous mes .cs, .csproj, .sln, .config, .as * x, etc., tous sauvegardés au format UTF-8 (avec signature, les marques d'ordre des octets), par défaut.

Samuel Meacham
la source
2
Merci pour le conseil de réglage. J'ai eu ce problème avec les fichiers xaml, ce qui a causé une erreur lors de la compilation
surfen
Salut, savez-vous pourquoi Report Designer Changer l'attribut d'encodage en utf-8? stackoverflow.com/questions/30071846/…
Mohammadreza
2
Toujours pas de meilleure solution? Mon VS2015 continue de réinitialiser la page de codes après chaque crash, et avec mon électricité, cela se produit assez souvent, tellement triste, comment Microsoft en est arrivé à cela, comment ils peuvent créer le meilleur IDE et oublier le paramètre de page de codes par défaut, quel dommage ((
Movsar Bekaev
2
Lorsque vous définissez Unicode, utilise-t-il réellement UTF-8 ou UTF-16?
binki
9
Le problème est que les données POURRAIENT être enregistrées dans la page de codes du système par défaut. Mais les autres logiciels ne peuvent pas toujours lire les sources dans la page de codes de mon système. Par conséquent, je cherche le moyen de forcer VS à enregistrer tous les fichiers texte en UTF-8 par défaut. Je n'ai aucune idée pourquoi diable quelqu'un veut enregistrer des données de texte dans une page de code autre que UTF-8.
BlackOverlord
19

Quoi

C'est possible avec EditorConfig .

EditorConfig aide les développeurs à définir et à maintenir des styles de codage cohérents entre les différents éditeurs et IDE.

Cela inclut également le codage des fichiers.

EditorConfig est intégré à Visual Studio 2017 par défaut, et il y avait des plugins disponibles pour des versions aussi anciennes que VS2012. Pour en savoir plus, consultez la page Plugin Visual Studio EditorConfig .

Comment

Vous pouvez configurer un fichier de configuration EditorConfig suffisamment haut dans votre structure de dossiers pour couvrir tous vos dépôts prévus (jusqu'à la racine de votre lecteur si vos fichiers sont vraiment dispersés partout) et configurer le paramètrecharset :

charset : défini sur latin1, utf-8, utf-8-bom, utf-16be ou utf-16le pour contrôler le jeu de caractères.

Vous pouvez ajouter des filtres et des exceptions, etc. à chaque niveau de dossier ou par nom / type de fichier si vous souhaitez un contrôle plus fin.

Une fois configurés, les IDE compatibles devraient automatiquement faire en sorte que les fichiers correspondants se conforment à la définition de règles. Notez que Visual Studio ne convertit pas automatiquement tous vos fichiers mais fait sa part lorsque vous travaillez avec des fichiers dans l'IDE (ouvrir et enregistrer).

Quelle suite

Bien que vous puissiez avoir une configuration à l'échelle de Visual studio, je suggère fortement d'inclure toujours une racine EditorConfig dans le contrôle de version de votre solution, afin que les paramètres explicites soient automatiquement synchronisés avec tous les membres de l'équipe. Votre fichier editorconfig racine du lecteur peut être la solution de secours si certains projets n'ont pas encore configuré leurs propres fichiers editorconfig.

Imre Pühvel
la source
4

Je travaille avec Windows7.

Panneau de configuration - Région et langue - Administratif - Langue pour les programmes non Unicode.

Après avoir défini "Changer les paramètres régionaux du système" en anglais (États-Unis). Mon encodage par défaut de vs2010 passe à Windows-1252. C'était gb2312avant.

J'ai créé un nouveau .cppfichier pour un projet C ++, après avoir archivé le nouveau fichier dans TFS, le codage show Windows-1252 à partir de la page de propriétés du fichier.

user10959888
la source
Dans Windows 10, il y a une case à cocher avec l'étiquette «Beta: utiliser Unicode UTF-8 pour prendre en charge les langues du monde». Quand je le vérifie, je peux ouvrir des fichiers encodés avec Windows-1252 sur visual studio 2019. Mais je ne trouve cette configuration que parce que cette réponse. Merci!
Gean Ribeiro le
1

Je ne connais pas non plus de paramètre global mais vous pouvez essayer ceci:

  1. Enregistrer tous les modèles Visual Studio en UTF-8
  2. Écrivez une macro / complément Visual Studio qui écoutera l'événement DocumentSaved et enregistrera le fichier au format UTF-8 (si ce n'est déjà fait).
  3. Mettez un proxy sur votre contrôle de source qui garantira que les nouveaux fichiers sont toujours UTF-8.
Shay Erlichmen
la source
2
3. peut être une mauvaise idée, car dès que vous archivez un fichier, cela déterminera que votre fichier ne correspond pas au fichier archivé. Enfin, avec subversion, au moins. S'il était possible d'encoder à la fois le chèque et l'enregistrement, ce ne serait pas un problème.
TamusJRoyce
Salut, savez-vous pourquoi Report Designer Changer l'attribut d'encodage en utf-8? stackoverflow.com/questions/30071846/…
Mohammadreza