Pregunta

Estoy ejecutando Doxygen (1.5.8) en un proyecto C# en Visual Studio 2008 en una máquina de Windows con XP. Al generar el código de látex, se incluyen algunas secuencias ilegales. Siempre implica la siguiente secuencia: "ï» ¿"(un latín-i con una dáresis, algo así como el operador de turno binario y una marca de mestización abierta española). Lo he visto suceder en el contexto "ï» ¿usando { bf System} ", pero tal vez hay otros.

Se lee el archivo de látex generado

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

Mientras que la fuente es simplemente:

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

¿Algún extraño personaje de Windows BOF? Parece que es solo antes del sistema de uso; Directiva (la primera de cada archivo).

¿Fue útil?

Solución



Esa es una representación ISO-8859-1 del personaje codificado U+FEFF UTF-8, la marca de orden de bytes. El BOM está destinado a su uso como el primer punto de código en los archivos UTF-16 y no debe usarse en archivos UTF-8, pero desafortunadamente hay algunas herramientas muy estúpidas que lo producen por defecto. Y si está creando archivos concatenando bits de texto de otros archivos, incluso puede terminar con BOM en el medio de su documento.

Encuentre el editor que está guardando archivos como "UTF-8 con BOM" y quúdelo.

Pregunta actualizada de eta:

ï »¿usando { bf System}

Mientras que la fuente es simplemente:

usando el sistema;

Verifique esa fuente en un editor hexadecimal para un falso oculto oculto antes del 'uso'.

Otros consejos

Me parece un problema de codificación de personajes.

Esa secuencia de tres caracteres es la marca de orden de byte unicode 0xfeff codificado en UTF-8, aunque no estoy seguro de por qué la marca de orden de byte se presentaría en el medio de su documentación ... eso podría ser significativo o podría ser una coincidencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top