在Doxygen生成的胶乳来源中的字符无效?
我在运行XP的Windows计算机上的Visual Studio 2008的C#项目上运行doxygen(1.5.8)。 在生成胶乳代码时,会包含一些非法序列。 它总是包含以下顺序:“拉丁 - 我与dieresis,如二进制移位操作符,和西班牙开放问号”。 我在“使用{ bf系统}”的背景下看到它发生了,但也许还有其他的。
生成的乳胶文件读取
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.糟糕的是,似乎没有办法用批量编码保存解决方案的所有现有文件,可以这么说,每个文件必须独立保存。 我发现的另一个怪癖(至少在我的情况下)是文件 - >高级保存选项不可用,除非您双击该类并且该文件在编辑器中打开。 好吧...
一世”
这是UTF-8编码字符U + FEFF(BYTE ORDER MARK)的ISO-8859-1表示。 材料清单是用作UTF-16文件中的第一个代码点,不应该用于UTF-8文件,但不幸的是,有一些非常愚蠢的工具默认生成它。 如果您通过连接来自其他文件的文本位来创建文件,则甚至可以在文档中间结束BOM。
找到将文件保存为“带有BOM的UTF-8”的编辑器并将其刻录。
ETA重新更新问题:
使用{ bf系统}
虽然来源简单:
使用系统;
在“使用”之前,在十六进制编辑器中检查隐藏人造BOM的来源。
你有什么想法的文字应该是什么样子?
有几种可能性,最明显的是你有一些随机的Unicode,这些是你从TeX字体中获得的字符。
它看起来像一个字符编码问题给我。
这个三字符序列是用UTF-8编码的Unicode字节顺序标记0xfeff
,尽管我不确定为什么字节顺序标记会显示在文档的中间......这可能很重要,或者它可能很重要可能只是巧合。
上一篇: Invalid characters in generated latex sources in Doxygen?