![.bbl 文件上出现“Package inputenc 错误:无效的 UTF-8 字节序列”](https://linux22.com/image/415066/.bbl%20%E6%96%87%E4%BB%B6%E4%B8%8A%E5%87%BA%E7%8E%B0%E2%80%9CPackage%20inputenc%20%E9%94%99%E8%AF%AF%EF%BC%9A%E6%97%A0%E6%95%88%E7%9A%84%20UTF-8%20%E5%AD%97%E8%8A%82%E5%BA%8F%E5%88%97%E2%80%9D.png)
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}
您biblatex
可以使用 Biber 作为后端,它可以立即处理 Unicode。
作为大卫 在评论中指出,问题中的症状可以通过使用非 ASCII 字符和文件和.bib
文件的不同(假定)编码.tex
(latin2
对于.bib
和文件为 UTF-8 .tex
)来解释。使用 BibTeX,您需要确保.bib
和.tex
文件编码匹配。但正如我之前所说,BibTeX 实际上不接受除 US-ASCII 之外的任何内容。
如果您的.bib
文件是由第三方工具编写的,则需要配置该工具以使用兼容的编码,但您还应该指示该工具对非 ASCII 字符使用宏转义。