【发布时间】:2012-11-29 03:26:29
【问题描述】:
我正在使用带有选项“-enc utf-8 -htmlmeta -raw”的pdftotext 并将其传递给解析输出的python 脚本。 (即使您不熟悉 pdftotext,也请继续阅读,因为这可能不相关。)
对于我们正在处理的一些 pdf,pdftotext 正在输出如下所示的元数据:
<meta name="CreationDate" content="<FE><FF>">
在 python 中,我正在这样做(基本上):
attrib[name] = content.decode('utf-8')
其中content 是上述元数据中的<FE><FF> 字符串。 Python 引发异常:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xfe in position 0: unexpected code byte
在这一点上,我不确定问题是 PDF 本身,还是 pdftotext 的输出,还是 Python 解释 utf-8 的方式。
我用谷歌搜索过,没有找到任何结论。
基本上,我希望pdftotext -enc utf-8仅输出有效的 utf-8。我希望 Python 在解码时能够理解如何处理该 utf-8。我缺少其中的某些部分吗?
如果能帮助我理解为什么会发生这种情况并提供解决方案,我将不胜感激。
谢谢!
【问题讨论】:
-
0xFE 0xFF是 UTF-16 大端字节序标记。它表示文件的字符编码,这意味着 Python 将其视为 UTF-16 而不是 UTF-8。
标签: python unicode utf-8 pdftotext