.bbl 文件上出现“Package inputenc 错误:无效的 UTF-8 字节序列”

.bbl 文件上出现“Package inputenc 错误:无效的 UTF-8 字节序列”
Package inputenc Error: Invalid UTF-8 byte sequence. \bibinfo{author}{Budulan, �.}

我收到上述错误,它与 .bbl 文件有关。

经检查,该行有以下错误:

\bibinfo{author}{Budulan, �.}, \bibinfo{author}{Burceanu, E.},

作者的名字拼写为 Budulan, Ştefania。参见字母 S。

这是什么意思?我该怎么办?

答案1

BibTeX 无法处理 US-ASCII 范围之外的 Unicode 字符。通常,当您只查看文档中的输出时,这一点并不明显,因为 BibTeX 通常只是按原样传递字符。但是,当您要求 BibTeX 执行字符串操作或排序时,就会发现 BibTeX 不知道如何处理非 US-ASCII 字符。缩短名字就是其中一种操作。

我没能重现你问题中的确切错误,但这里有一个Ş两次错误的例子。在 BibTeX 中,你必须使用宏转义{\c S}。另请参阅如何在参考书目中书写“ä”及其他变音符号和重音字母?

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage{natbib}
\bibliographystyle{abbrvnat}

\begin{filecontents}{\jobname.bib}
@article{budulan:bad,
  author  = {Budulan, Ştefania},
  title   = {Bad -- Unicode (Ş S)},
  year    = {1980},
}
@article{budulan:good,
  author  = {Budulan, {\c S}tefania},
  title   = {Good -- macro escape ({\c S} S)},
  year    = {1980},
}
\end{filecontents}


\begin{document}
\cite{budulan:bad,budulan:good}
\bibliography{\jobname}
\end{document}

Ş。错误。好 – 宏转义(ş s)。1980a。//t。错误 – unicode(Ş s)。1980b。

biblatex可以使用 Biber 作为后端,它可以立即处理 Unicode。


作为大卫 在评论中指出,问题中的症状可以通过使用非 ASCII 字符和文件和.bib文件的不同(假定)编码.texlatin2对于.bib和文件为 UTF-8 .tex)来解释。使用 BibTeX,您需要确保.bib.tex文件编码匹配。但正如我之前所说,BibTeX 实际上不接受除 US-ASCII 之外的任何内容。

如果您的.bib文件是由第三方工具编写的,则需要配置该工具以使用兼容的编码,但您还应该指示该工具对非 ASCII 字符使用宏转义。

相关内容