我在运行XP的Windows机器上运行Visual Studio 2008上的C#项目运行doxygen(1.5.8)。在生成乳胶代码时,会包含一些非法序列。它总是涉及以下顺序:“”(一个带有dieresis的拉丁语,类似二元移位运算符和西班牙语开放式问号)。我已经看到它发生在“使用{\ bf System}”的上下文中,但也许还有其他的。
生成的乳胶文件读取
\begin{CompactItemize}
\item
using {\bf System}
\end{CompactItemize}
虽然来源很简单:
using System;
using System.Collections.Generic;
using System.Linq;
一些奇怪的Windows BOF角色?似乎只有在使用系统之前;指令(每个文件的第一个)。
编辑:谢谢大家。正如我在下面接受的答案中所述,这是BYTE_ORDER_MARK字符。显然,不出所料,Visual Studio正在起作用。好的是,有一种方法可以在没有BOM签名的情况下以UTF-8保存文件。档案 - >高级保存选项 - >编码(没有签名的UTF-8) - 代码页65001.不好的是,似乎无法批量保存具有此编码的解决方案的所有现有文件,可以这么说,每个文件都必须单独保存。我发现的另一个怪癖(至少在我的情况下)是File - >在双击类并且文件在编辑器中打开之前,高级保存选项不可用。哦,好吧......答案 0 :(得分:2)

这是UTF-8编码字符U + FEFF(BYTE ORDER MARK)的ISO-8859-1表示。 BOM旨在用作UTF-16文件中的第一个代码点,不应在UTF-8文件中使用,但遗憾的是,有一些非常愚蠢的工具可以默认生成它。如果您通过连接其他文件中的文本来创建文件,您甚至可以在文档中间使用BOM。
找到将文件保存为“带BOM的UTF-8”并将其刻录的编辑器。
ETA重新更新问题:
使用{\ bf System}
虽然来源很简单:
使用System;
在“使用”之前,在十六进制编辑器中检查该源是否有隐藏的虚假BOM。
答案 1 :(得分:0)
你知道应该的文字是什么样的吗?
有几种可能性,最明显的是你在那里有一些随机的Unicode,那些是从TeX字体中得到的字符。
答案 2 :(得分:0)
对我来说,它看起来像是一个字符编码问题。
这个三字符序列是以UTF-8编码的Unicode字节顺序标记0xfeff
,虽然我不确定为什么字节顺序标记会出现在文档中间。这可能很重要,也可能只是巧合。