2009-05-08 7 views
41

Existe-t-il un moyen de forcer VS à utiliser Unicode toujours, au lieu de ISO-quelque chose d'étrange?comment changer le codage de fichier source dans le projet csharp (visual studio/msbuild machine)?

Je travaille sur un csproject winapp en utilisant Visual Studio 2008 sur Vista (locale polonais). Le problème apparaît lorsque je construis le projet sur Win Server 2003 (anglais local) - alors le diacritique polonais est parti. J'ai étudié que le problème est dû à un codage de fichier source incorrect. Il semble que les fichiers source n'utilisent pas l'encodage UTF-8.

Répondre

91

Problème: Le compilateur lancé à partir de la ligne de commande ne peut pas traiter le fichier source en raison des caractères internationaux que je viens d'ajouter.

Solution: Enregistrer le fichier source explicitement en codage UTF-8 pour préserver les caractères internationaux.

Comment:

* open the problematic file in Visual Studio. 
* on the File menu click “Advanced Save Options“ 
* from “Encoding” combo select “Unicode (UTF-8 …“ 
* click OK. 

Vous êtes fixés. S'engager à plaire au serveur de build et au reste de l'équipe en attente de green.

+3

Je l'ai compris il y a quelques instants. J'ai enregistré un fichier pour le test en utilisant 'UTF-with-BOM' et il a corrigé quelques chaînes invalides. Existe-t-il un paramètre pour Visual Studio pour utiliser UTF pour toutes les sources? C'est vraiment stupide de le changer manuellement pour quelques centaines de fichiers. – tomo

+0

Il y a cependant un travail à effectuer - vous pouvez obtenir Visual Studio en utilisant un encodage différent en réglant les paramètres régionaux de l'ordinateur, par exemple, en anglais par exemple. Cela contraindrait à son tour VS à utiliser «Western Europe - Codepade 1252» plutôt que «Unicode UTF-8 - Codepage 65001». Encore une fois, cela fonctionne dans l'édition Express et je suis sûr que ce sera dans l'application complète. – ruslander

+4

Cette solution de contournement ne me satisfait pas. Je mets le réglage régional de l'ordinateur à polir exprès afin de le changer n'est pas une option. Et passer au CP 1252 n'est pas une option non plus. Je veux définir explicitement CP65001. J'ai passé un peu de temps pour la recherche et ce que je vois que les modèles VS 2008 sont bien - ils sont tous UTF-8 avec BOM. La source de tous les maux sont des modèles de codeurs bâclés de producteurs de composants externes. Une version récente d'ASP.NET MVC a également ce problème. – tomo

1

J'ai rencontré les mêmes problèmes avec le projet VS2015 vb.net et l'ai résolu en ajoutant le marqueur <CodePage>1250</CodePage> à votre fichier vbproj/csproj. Je l'ai fait après <SchemaVersion> marqueur, reconstruit le projet et cela a fonctionné pour moi. J'ai eu des problèmes avec les lettres polonaises telles que ż, ą etc. Vous pouvez également essayer le UTF-8 - 65001 mais je n'ai pas vérifié si cela fonctionne.

Questions connexes