0

我在运行 XP 的 Windows 机器上的 Visual Studio 2008 的 C# 项目上运行 doxygen (1.5.8)。在生成乳胶代码时,会包含一些非法序列。它总是涉及以下序列:“”(带有分词的拉丁-I,类似于二元移位运算符和西班牙语开放问号)。我已经看到它发生在“using {\bf System}”的上下文中,但也许还有其他的。

生成的乳胶文件读取

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

虽然来源很简单:

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

一些奇怪的 Windows BOF 字符?似乎只是在使用系统之前;指令(每个文件的第一个)。

4

2 回答 2

2

一世”

这是 UTF-8 编码字符 U+FEFF(字节顺序标记)的 ISO-8859-1 表示。BOM 旨在用作 UTF-16 文件中的第一个代码点,不应在 UTF-8 文件中使用,但不幸的是,默认情况下有一些非常愚蠢的工具会生成它。如果您通过连接来自其他文件的文本位来创建文件,您甚至可以在文档中间使用 BOM。

找到将文件保存为“UTF-8 with BOM”的编辑器并刻录。

ETA重新更新问题:

使用 {\bf 系统}

虽然来源很简单:

使用系统;

在“使用”之前,在十六进制编辑器中检查该源是否有隐藏的人造 BOM。

于 2009-02-27T18:41:01.363 回答
0

对我来说,这看起来像是一个字符编码问题。

这三个字符序列是以 UTF-8 编码的 Unicode 字节顺序标记0xfeff,尽管我不确定为什么字节顺序标记会出现在您的文档中间......这可能很重要,也可能只是巧合。

于 2009-02-27T18:37:36.520 回答