Biber 2.11:无法以 UTF-8 编码读取数据文件... ... UTF-8 八位字节序列格式错误...位于... Slurper.pm 第 63 行

Biber 2.11:无法以 UTF-8 编码读取数据文件... ... UTF-8 八位字节序列格式错误...位于... Slurper.pm 第 63 行

我刚刚换了电脑,运行 Biber 2.11 现在出现此错误:

Utils.pm:209> ERROR - Data file ... cannot be read in encoding 'UTF-8': 
Can't decode ill-formed UTF-8 octet sequence <96> at C:\ ... Slurper.pm line 63

我的 .bib 文件非常大,已经积累了好几年了。因此,我怀疑它里面有缺陷。 有没有什么快速解决问题的方法?

新机器运行 Win 10、Biber 2.11、XeLaTeX 2018.10.31、LaTeX2e 2018-04-01 和 TeXLive 2018。旧机器运行 Win 7 及以上所有版本的稍早版本。

驱动程序 .tex 文件的 MWE:

\documentclass{article} % also with beamer

\usepackage[utf8]{inputenc} % problem arises whether or not include this
\usepackage[backend=biber,bibencoding=utf8]{biblatex} %  problem arises whether or not include this
\addbibresource{bib-mwe.bib}

\begin{document}

cite reference \cite{mal-rwws}

\printbibliography

\end{document} 

谢谢!

答案1

正如解释的那样https://github.com/plk/biber/issues/226Biber 用于读取.bib文件的底层库没有提供错误的行号。因此 Biber 无法告诉您错误的位置。

通常问题很简单,整个文件没有猜测/声明的编码。请注意全部的文件内容很重要,因此评论也可能是一个问题。

对于 MWE,.bib文件必须以 UTF-8 编码(或兼容编码,如 US-ASCII)。即使没有明确的bibencoding=utf8biblatex也会从 猜测\usepackage[utf8]{inputenc}您正在使用 UTF-8,并且如果您的 LaTeX 比 2018-04-01 更新,甚至会假定 UTF-8inputenc因为它现在是标准。

如果.bib文件出现问题,您应该执行以下步骤。

  1. 确定采用哪种编码应该有(通常 UTF-8 是个好主意,但如果您在文件中声明了不同的编码.texbiblatex通常会假定您的.bib文件使用相同的编码,当然可以用 覆盖bibencoding)。
  2. 找出你的.bib文件采用哪种编码实际上有。
  3. 如果编码不匹配,则需要重新编码.bib文件或biblatex尝试不同的编码。

.bib只需将文件内容复制并粘贴到明确设置为 UTF-8 的新文件中即可。

答案2

我遇到了同样的问题。我没有使用文本编辑器,而是在 jabref 中打开了 .bib 文件。您可以使用“文件”菜单中的“库属性”更改库编码。然后保存库。这也改变了 .bib 文件第一行的编码规范,否则我必须手动更改(当我使用文本编辑器时)。

答案3

感谢您的有益评论。

下列的大卫's,问题通过以下方式解决:

  1. .bib在文本编辑器(例如记事本)中打开该文件
  2. 通过单击底部的菜单栏将 WinEdt(我的 LaTeX 编辑器)中的编码设置为 UTF-8(最初设置为 ANSI)
  3. 在 WinEdt 中创建一个空白文档
  4. 将原始文件的内容.bib从记事本粘贴到 WinEdt 中
  5. 将新的 WinEdt 文档保存为.bib文件
  6. 使用新.bib文件进行编译

相关内容