我在运行XP的Windows机器上的Visual Studio 2008的C#项目上运行Doxygen(1.5.8)。在生成乳胶代码时,包括一些非法序列。它始终涉及以下序列:“⻿”(带有二级式的拉丁语,二进制换档运算符和西班牙开放式标记)。我已经看到它发生在“使用{ 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(字节订单标记)的ISO-8859-1表示。 BOM旨在用作UTF-16文件中的第一个代码点,不应在UTF-8文件中使用,但是不幸的是,默认情况下有一些非常愚蠢的工具可以生产它。而且,如果您是通过从其他文件中串联文本来创建文件,甚至可以在文档中间放入BOM。

查找将文件保存为“带有BOM的UTF-8”的编辑器并将其刻录。

ETA更新了问题:

•使用{ bf系统}

虽然来源只是:

使用系统;

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

其他提示

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

该三个字符序列是Unicode字节级标记 0xfeff 在UTF-8中编码,尽管我不确定为什么在文档中间出现字节订单标记……这可能很重要,或者可能只是巧合。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top