如何使用pdftotext将文本文件保存为UTF-8格式

12

我正在使用开源工具pdftotext将PDF格式文件转换为文本文件。请问如何将文本文件以UTF-8编码格式保存,以便保留所有重音字符在文本文件中。我使用以下命令进行转换,它会将内容提取到文本文件,但无法看到任何重音字符。

pdftotext -enc UTF-8 book1.pdf book1.txt

请帮助我解决这个问题。

谢谢!

2个回答

28
你可以使用以下命令获取可用编码列表:

{{使用以下命令获取可用编码列表:}}

pdftotext -listenc

使用"-enc"参数选择正确的编码方式。我的默认情况下似乎使用UTF-8。也就是说,你的"UTF-8"是多余的。

pdftotext -enc UTF-8 your.pdf

您可能需要检查您的语言环境(LC_ALL,LANG等)。

编辑: 我下载了以下PDF: http://www.i18nguy.com/unicode/unicodeexample.pdf

并在Windows 7 PC(德语)和XPDF 3.02PL5上使用以下命令进行转换:

pdftotext.exe -enc UTF-8 unicodeexample.pdf

这个文本文件肯定是UTF-8编码的,因为所有字符都能正确显示。你是用这个文本文件做什么?如果你通过Web应用程序来显示它,那么你的内容编码可能只是错误的,而文本文件已经按照你想要的进行了转换。
请使用浏览器(在Firefox中强制编码为ISO-8859-1和UTF-8)或使用十六进制编辑器进行双重检查。

我正在使用版本为3.02的pdftotext。 - Amar
1
你在哪个平台上运行这个程序?是Unix/Linux还是Windows?从版本号来看,看起来你正在使用有些过时的(原始的)XPDF版本。大多数Linux发行版已经转向了Poppler。我的版本是“pdftotext version 0.14.4”,来自于Poppler(2010年发布的版本)。 - icanhasserver
我正在使用Windows 7,并已下载了最新版本的“Xpdf 3.02pl5于2010年10月21日发布”的Windows版本。 - Amar
请看我上面的编辑。使用您提到的版本,我转换为UTF-8没有问题。 - icanhasserver
请将其发送到以下地址:temp12474 AT icanhasserver DOT com,但您的问题并不是来自PDF文件本身。我提供的那个更好地进行诊断,因为它包含大量不同的代码点。 - icanhasserver
显示剩余3条评论

0

情况有点混乱,所以我又回答了一下。

我拆开了 PDF 文件,我的最佳猜测是使用的字体出现了“问题”:

  • 在 Acrobar Reader 中打开 PDF 文件
  • 选择页面上的所有文本
  • 将其复制并粘贴到 Unicode 感知的文本编辑器中(没有“隐藏”的 OCR,因此您复制的是实际数据)

您会发现,你得到的代码点不是在 PDF 阅读器中看到的那些。无论该字体是什么,它可能具有与 Unicode 标准定义的映射不同的映射。因此,您的内容是“错误”的,对此您无能为力。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接