2009-09-21 13 views
0

Je travaille actuellement sur un document LaTeX qui incorpore des fichiers C# générés par Visual Studio 2008. Mon problème est que ces fichiers sont encodés en UTF-8 avec Nomenclature Cela provoque LATEX pour produire une sortie similaire à la sortie décrite dans ce post:
Invalid characters in generated latex sources in Doxygen?Visual Studio C# désactiver unicode ou utf-8 comme encodage de fichier et utiliser ASCII à la place

Je sais que je peux utiliser un outil comme Notepad ++ pour convertir le fichier en ASCII ou un autre format sans nomenclature. Mais mon intention serait de:

  • soit LATEX cause à utiliser le codage d'entrée correcte (jusqu'à présent je ne ai pas le faire avec les importations de paquets comme:

    \ usepackage {UCS}% fonctionnalité unicode
    \ usepackage [latin1] {} inputenc

  • ou provoquer Visual studio pour enregistrer les fichiers sans nomenclature ou en ASCII

Sinon, je pourrais éditer le fichier (le compiler et l'enregistrer dans VC#) et introduire involontairement une nouvelle nomenclature, ce qui casserait la liste de codes dans le document.

Un grand merci,
Ovanes

Répondre

2

Visual Studio n'a pas cette option, je crois, parce que .NET est construit à partir de la base pour utiliser Unicode.

Cependant, je ne crois pas que Visual Studio est censé utiliser les marques de commande d'octets. Vous avez dit que Visual Studio "générait" ces fichiers, mais quel processus les crée vraiment? Est-ce le résultat d'une sorte d'outil de génération de code? Si oui, c'est le coupable et l'endroit où vous devriez vous concentrer.

J'ai vérifié plusieurs de mes fichiers de code et aucun d'entre eux ne contient les marques d'ordre des octets.

EDIT: Modification visuelle des modèles de projet studio

Dans les commentaires questionneur dit que ces fichiers ont été générés par la console intégrée modèle de projet d'application. Ceux-ci sont stockés sur votre disque dur et peuvent être modifiés si nécessaire.

Votre chemin d'installation peut varier, mais sur mon système, je naviguais dans ce répertoire:

C: \ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ProjectTemplates \ CSharp \ Windows \ 1033

Ici, je trouve ConsoleApplication.zip. J'ai copié ceci sur mon bureau (pour plus de sécurité) et décompressé, et à l'intérieur vous trouvez 4 fichiers - un fichier .vstemplate, et les 3 fichiers qui sont créés par le projet: AssemblyInfo.cs, ConsoleApplication.csproj, et Program.cs.

Si vous le souhaitez, vous pouvez modifier ces fichiers pour supprimer les marques de commande d'octets, les compresser en arrière et remplacer le fichier dans le répertoire source.OU, pour être plus sûr, vous pouvez changer le nom du modèle en "Projet de console - Pas de nomenclature" ou quelque chose comme ça. Dans le fichier .vstemplate, il existe un attribut Name qui utilise un attribut Package pour appeler des informations de quelque part par un guid. Vous pouvez remplacer cette ligne de nom par une simple ligne qui spécifie le nom.

<Name>Console Application - No BOM</Name> 

rezip Ensuite, les fichiers, et placez le fichier zip dans le chemin suivant:

(Mes documents) \ Visual Studio 2008 \ Templates \ ProjectTemplates \ Visual C#

De nouveaux projets créés à partir de cette Le modèle ne doit pas contenir les marques d'ordre des octets, mais rappelez-vous que Microsoft voulait apparemment ces marques d'octets, de sorte que votre kilométrage peut varier.

Les modèles d'éléments (comme Class) peuvent être modifiés de la même manière - il ne faut pas trop explorer pour trouver le répertoire ItemTemplates par défaut et utilisateur.

+0

Ce sont les premiers octets de mon fichier .cs générés par l'assistant de code VS 2009 (simple application console .NET): ef bb bf 75 73 69 6e 67 20 53 79 73 74 65 6d 3b qui se traduisent par: ï »¿en utilisant Système; – ovanes

+0

Quel assistant de code? –

+0

Assistant de projet Visual C# qui génère une application console simple. – ovanes

2

Je ne suis pas sûr que je comprends votre scénario. Mais si vous voulez simplement convertir un fichier en ASCII à partir de Visual Studio, sélectionnez "Fichier - Enregistrer sous" et basculez l'encodage en ASCII.

+0

JaredPar merci pour la réponse. Mon scénario est que je veux que VS C# utilise par défaut ASCII et non UTF-8. – ovanes

0

Avez-vous essayé \ usepackage [UTF8] {inputenc}

+0

oui, ça n'a pas aidé. J'ai essayé plusieurs encodages du paquet inputenc. – ovanes

+0

peut-être que vous devriez essayer de le pomper via iconv? – Mica

0

Dans VS 2015, vous pouvez spécifier le codage au moyen File -> Advanced save options... dialogue

0

Vous pouvez utiliser le plug-in pour Visual Studio: https://vlasovstudio.com/fix-file-encoding/, ce plugin empêche Visual Studio à partir ajouter BOM au début du fichier, de sorte que tous mes fichiers peuvent avoir encodage UTF-8 et les chaînes brutes peuvent contenir des caractères spéciaux et ils seront affichés/écrits sans aucun problème,

Questions connexes