Visual Studio problèmes d'encodage
J'ai des problèmes avec les fichiers d'encodage dans Visual Studio 2008. Lors de la compilation j'obtiens ces erreurs:
Lorsque j'essaie d'ouvrir le fichier où l'erreur se passe, la fenêtre d'encodage s'affiche:
Par defualt auto-détection est définie. Quand je change d'option d'encodage en UTF-8, tout fonctionne. Si j'ouvre chaque fichier posant problème dans mon projet en utilisant l'encodage UTF-8, le projet commence à compiler. Le problème est que j'ai trop de fichiers et il est ridicule d'ouvrir chaque fichier et de définir le codage UTF-8. Est-il possible de faire cela de manière rapide ?
Mon VS les paramètres sont:
Je suis à l'aide de Windows Server 2008 R2.
Mise à JOUR:
Pour Hans Passant et Noé Richards. Merci pour l'interaction. J'ai récemment changé mon système d'exploitation, donc tout est frais. J'ai aussi téléchargé la solution fraîche de la source de contrôle.
En OS paramètres régionaux, j'ai changé les paramètres régionaux du système de polonais(Pologne):
VS, j'ai changé les paramètres internationaux le même que celui de windows:
Le problème n'est toujours pas résolu.
Quand j'ouvre certains .cs fichiers à l'aide de la détection automatique de l'encodage, et de vérifier ensuite Fichiers -> Options d'enregistrement Avancées..., une partie de cette .cs fichiers ont codepage 1250:
mais en interne, regarde suivantes:
Il est câblé, parce que lorsque je vérifie les propriétés de ces fichiers en particulier dans le contrôle de code source, ils semble avoir de l'encodage UTF-8 set:
Je ne comprends pas cette différence.
Tous les autres fichiers ont le codage UTF-8:
et s'ouvre correctement. J'ai aucune idée de ce qui va mal parce que comme je sais que mon ami a les mêmes options que moi, et le même projet compile pour lui correctement. Mais jusqu'à présent, il a heureusement n'a pas rencontré de problèmes de codage.
OriginalL'auteur jwaliszko | 2010-11-09
Vous devez vous connecter pour publier un commentaire.
Qui A majuscule avec accent circonflexe me dit que le fichier est en UTF-8 (si vous regardez avec un éditeur hexadécimal, vous verrez probablement que les octets sont C2 A0). C'est un espace insécable en UTF-8.
Visual Studio ne permet pas de détecter l'encodage car (le plus probable) il n'y a pas assez de haute caractères ASCII dans le fichier d'aide avec une détection fiable.
Aussi, il n'y a pas de BOM (Byte Order Mark). Susceptible d'aider à la détection (c'est la "signature" dans le "UTF-8 avec la signature" description).
Ce que vous pouvez faire: ajouter la NOMENCLATURE de tous les fichiers qui n'en ont pas.
Comment ajouter? Faire un fichier avec une NOMENCLATURE seulement (fichier vide dans le bloc-notes, Enregistrer sous, sélectionnez l'encodage UTF-8). Il sera de 3 octets de long (EF BB BF).
Vous pouvez le copier au début de chaque fichier qui est absent de la NOMENCLATURE:
Assurez-vous qu'il est un + entre le nom de la NOMENCLATURE du fichier et celui du fichier d'origine.
L'essayer sur un ou deux fichiers, et si cela fonctionne, vous pouvez créer des fichier de commandes pour le faire.
Ou une petite application en C# (puisque vous êtes un programmeur C#), qui permet de détecter si le fichier a déjà une NOMENCLATURE ou non, de sorte que vous n'ajoutez pas deux fois. Bien sûr, vous pouvez le faire presque n'importe quoi, à partir de Perl pour PowerShell pour C++ 🙂
OriginalL'auteur Mihai Nita
Une fois que vous avez ouvert les fichiers en mode UTF-8, pouvez-vous essayez de modifier les Options d'enregistrement Avancées pour le fichier et de l'enregistrer (en UTF-8 avec la signature, si vous pensez que ces fichiers doivent être en UTF-8)?
La détection automatique de l'encodage de détection est de meilleur effort, il est donc probable que quelque chose dans le fichier qui est à l'origine être détecté comme quelque chose d'autre que UTF-8, comme le fait d'avoir uniquement des caractères ASCII dans le premier octet du fichier, ou d'avoir une NOMENCLATURE qui indique que le fichier est autre chose que de l'UTF-8. Ré-enregistrer le fichier en UTF-8 avec la signature de (espérons-le) de corriger cela.
Si elle continue qui se passe après cela, laissez-moi savoir, et nous pouvons essayer de découvrir ce qui est à l'origine de leur création/enregistré comme dans la première place.
OriginalL'auteur Noah Richards