Pergunta

Estou executando doxygen (1.5.8) em um projeto C# fora do Visual Studio 2008 em uma máquina Windows executando o XP. Ao gerar o código do látex, algumas seqüências ilegais estão incluídas. Sempre envolve a seguinte sequência: "» »¿" (um latim-i com uma dierese, algo como o operador de mudança binária e uma marca de pergunta aberta espanhola). Eu já vi isso acontecer no contexto "ï» »usando { bf System}", mas talvez haja outros.

O arquivo de látex gerado lê

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

Enquanto a fonte é simplesmente:

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

Algum personagem estranho do Windows Bof? Parece que é somente antes do sistema de uso; diretiva (a primeira de cada arquivo).

Foi útil?

Solução



Essa é uma representação ISO-8859-1 do caractere codificado UTF-8 U+Feff, a marca de ordem de bytes. O BOM destina-se ao uso como o primeiro ponto de código nos arquivos UTF-16 e não deve ser usado nos arquivos UTF-8, mas existem algumas ferramentas muito estúpidas que o produzem por padrão, infelizmente. E se você estiver criando arquivos concatenando bits de texto de outros arquivos, poderá até acabar com BOMs no meio do seu documento.

Encontre o editor que está salvando arquivos como "UTF-8 com BOM" e queima.

Pergunta eta -atualizada:

`» »usando { bf System}

Enquanto a fonte é simplesmente:

usando o sistema;

Verifique essa fonte em um editor hexadecimente para obter um falso-BOM oculto antes do 'usando'.

Outras dicas

It looks like a character encoding problem to me.

That three-character sequence is the Unicode byte-order mark 0xfeff encoded in UTF-8, although I'm not sure why the byte-order mark would be showing up in the middle of your documentation... that could be significant or it could just be a coincidence.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top