문제

저는 XP를 실행하는 Windows 컴퓨터에서 Visual Studio 2008의 C# 프로젝트에 대해 doxygen(1.5.8)을 실행하고 있습니다.라텍스 코드를 생성하는 동안 일부 불법 시퀀스가 ​​포함됩니다.항상 다음 순서가 포함됩니다.""(분음 기호가 있는 라틴 I, 이진 이동 연산자와 같은 것, 스페인어 개방형 물음표)." {\bf System} 사용"이라는 맥락에서 이런 일이 발생하는 것을 본 적이 있지만 다른 경우도 있을 수 있습니다.

생성된 라텍스 파일은 다음을 읽습니다.

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

소스는 간단하지만 :

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

이상한 Windows BOF 문자가 있나요?시스템을 사용하기 전인 것 같습니다.지시어(각 파일의 첫 번째).

도움이 되었습니까?

해결책



이는 UTF-8로 인코딩된 문자 U+FEFF, 즉 BYTE ORDER MARK의 ISO-8859-1 표현입니다.BOM은 UTF-16 파일의 첫 번째 코드 포인트로 사용하기 위한 것이며 UTF-8 파일에서 사용해서는 안 됩니다. 그러나 불행하게도 기본적으로 BOM을 생성하는 몇 가지 매우 어리석은 도구가 있습니다.그리고 다른 파일의 텍스트 비트를 연결하여 파일을 만드는 경우 문서 중간에 BOM이 생길 수도 있습니다.

파일을 "BOM이 포함된 UTF-8"로 저장하는 편집기를 찾아서 굽습니다.

ETA 재업데이트된 질문:

 {\bf 시스템}을 사용하여

소스는 간단하지만 :

시스템 사용;

'사용'하기 전에 숨겨진 가짜 BOM이 있는지 16진수 편집기에서 해당 소스를 확인하세요.

다른 팁

제가 보기에는 문자 인코딩 문제인 것 같습니다.

해당 세 문자 시퀀스는 유니코드 바이트 순서 표시입니다. 0xfeff UTF-8로 인코딩되었지만 문서 중간에 바이트 순서 표시가 나타나는 이유는 확실하지 않습니다.그것은 중요할 수도 있고 단지 우연일 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top