2009-02-27 10 views
0

Ich führe Doxygen (1.5.8) auf einem C# -Projekt von Visual Studio 2008 auf einem Windows-Rechner unter XP aus. Beim Erzeugen des Latexcodes sind einige illegale Sequenzen enthalten. Es beinhaltet immer die folgende Sequenz: "ï» ¿"(ein Latin-i mit einer Dieresis, etwas wie der binäre Shift-Operator und ein spanisches Open-Fragezeichen). Ich habe gesehen, dass es im Zusammenhang mit dem "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Ungültige Zeichen in generierten Latexquellen in Doxygen?

Die erzeugte Latex-Datei liest

\begin{CompactItemize} 
    \item 
    using {\bf System} 
    \end{CompactItemize} 

Während die Quelle ist einfach:

using System; 
using System.Collections.Generic; 
using System.Linq; 

Einige seltsame Windows-BOF Charakter? Es scheint, dass es nur vor dem benutzenden System ist; Direktive (der erste jeder Datei).

EDIT: Danke an alle. Wie es in meiner unten akzeptierten Antwort angegeben wurde, ist dies das BYTE_ORDER_MARK-Zeichen. Offensichtlich und nicht überraschend agiert Visual Studio. Gut, dass es eine Möglichkeit gibt, Dateien in UTF-8 ohne die BOM-Signatur zu speichern. File -> Advanced Save Options -> Encoding (UTF-8 ohne Signatur) - Codepage 65001. Schlechte Sache ist, dass es scheinbar keine Möglichkeit gibt, alle vorhandenen Dateien einer Lösung mit dieser Codierung sozusagen im Batch zu speichern und Jede Datei muss unabhängig gespeichert werden. Eine weitere Eigenart, die ich gefunden habe (zumindest in meinem Fall), ist, dass Datei -> Erweiterte Speicheroptionen nicht verfügbar ist, bis Sie auf die Klasse doppelklicken und die Datei im Editor geöffnet ist. Oh well ...

Antwort

2

ï »¿

Das ist ein ISO-8859-1 Darstellung der UTF-8-kodierten Zeichen U + FEFF die Bytereihenfolgemarkierung. Die Stückliste ist als erster Codepunkt in UTF-16-Dateien gedacht und sollte nicht in UTF-8-Dateien verwendet werden, aber es gibt leider einige sehr dumme Werkzeuge, die sie standardmäßig erzeugen. Und wenn Sie Dateien erstellen, indem Sie Textzeilen aus anderen Dateien verketten, können Sie sogar Stücklisten in der Mitte Ihres Dokuments erhalten.

Suchen Sie den Editor, der Dateien als "UTF-8 mit BOM" speichert und brennen Sie es.

ETA erneut Frage aktualisiert:

ï »¿mit {\ bf-System}

Während die Quelle ist einfach:

using System;

Überprüfen Sie diese Quelle in einem Hex-Editor auf eine versteckte falsche BOM vor dem 'Verwenden'.

0

Haben Sie eine Idee, wie der Text aussehen sollte?

Es gibt ein paar Möglichkeiten, die offensichtlichste ist, dass Sie dort einige zufällige Unicode haben, und das sind die Zeichen, die Sie von der TeX-Schriftart erhalten.

0

Es sieht aus wie ein Zeichencodierungsproblem für mich.

Diese drei-Zeichen-Sequenz ist die Unicode-Byte-Order-Marke 0xfeff in UTF-8 codiert, obwohl ich nicht sicher bin, warum die Byte-Reihenfolge-Markierung mitten in Ihrer Dokumentation angezeigt würde ... das könnte bedeutungsvoll sein oder es könnte nur ein Zufall sein.

Verwandte Themen