Pdf 由于输入编码错误,doxygen latex make失败

Pdf 由于输入编码错误,doxygen latex make失败,pdf,latex,doxygen,miktex,Pdf,Latex,Doxygen,Miktex,我在eclipse中有一个git repo项目,我一直在使用doxygen(v1.8.4)记录该项目。 如果我运行latex,使其成为项目的一个新克隆,那么它运行良好,并且生成了PDF。 但是,如果我随后运行doxy构建(完成OK),然后尝试运行latex make,它将失败 ! Package inputenc Error: Keyboard character used is undefined (inputenc) in inputencoding `utf

我在eclipse中有一个git repo项目,我一直在使用doxygen(v1.8.4)记录该项目。 如果我运行latex,使其成为项目的一个新克隆,那么它运行良好,并且生成了PDF。 但是,如果我随后运行doxy构建(完成OK),然后尝试运行latex make,它将失败

! Package inputenc Error: Keyboard character used is undefined 
(inputenc)                in inputencoding `utf8'. 

See the inputenc package documentation for explanation. 
Type  H <return>  for immediate help. 
 ... 
!软件包输入错误:使用的键盘字符未定义
(inpuntec)在inpuntencoding'utf8'中。
有关说明,请参阅InpuNec软件包文档。
键入H以获得即时帮助。
... 
我已尝试通过将
doxyfile\u encoding
设置为
ISO-8859-1
来切换doxyfile的编码,但结果没有变化。。。我怎样才能解决这个问题??谢谢

编辑:据我所知,我在我的文件中没有使用非UTF-8字符,错误之前引用的文件非常短,其中肯定没有非UTF-8字符。我甚至尝试过清理我的latex输出目录并从头开始构建,但没有运气


编辑:我已确认doxy版本似乎只正确运行。它不会显示任何错误,但它应该,例如,运行DOT并构建大约10个图形。控制台输出显示正在运行的点,但它并没有像实际生成图形时那样生成图形(n/x)…

简短回答:通过一个缓慢的消除过程,我发现这是由文件中的一个撇号造成的,该文件似乎已经生成并且没有错误


详细回答:首先,我使用项目属性将编码从默认的Cp1252翻转到UTF-8。然后我开始一个接一个地删除文件,直到每次删除后重建和重新制作,直到make成功运行。我重新添加了所有文件,但删除了最近删除的文件中的内容,并测试了make-以确认是这个文件,并且只有这个文件导致了问题。制作过程顺利。因此,我将内容粘贴回空文件,并开始删除文件中越来越小的部分,每次都再次重建和重新制作,直到我留下了一个没有撇号的好版本和一个带有撇号的坏版本。。。我只是简单地重新输入了撇号(因为这将迫使它成为UTF-8字符)并成功!!真讨厌

老兄,你真是太难了。为什么不使用python为您完成这项工作:

f = open(fn,"rb")
data = f.read()
f.close()
for i in range(len(data)):
    ch = data[i]
    if(ch > 0x7F): # non ASCII character
        print("char: %c, idx: %d, file: %s"%(ch,i,fn))
        str2 = str(data[i-30:i+30])#.decode("utf-8")
        print("txt: %s" % (str2))

是否有任何理由使用doxygen 1.8.4?你试过1.8.6吗?当没有创建新图形或图形没有更改时,Doxygen不会运行dot。@albert,1.8.4是我最后一次更新时,正试图将工具更新保持在项目中期的最低限度。您认为这个问题可以通过1.8.6的更改来解决吗?对于我们这些不懂python的人,有没有关于这些代码行的功能的信息?