在此代码中:
subprocess.getoutput('./pdftotext file.pdf -')
我也试过UTF-16
:
subprocess.check_output('./pdftotext file.pdf -', shell=True, encoding='utf-16')
PDF来自https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf,但我在另一个PDF中看到了相同的错误(带有另一个字节值(。
这个来自Mozilla的PDF在没有Python的情况下使用纯Bash表现良好。
我还尝试了参数universal_newlines=True
,例如:
return subprocess.run(
'./pdftotext file.pdf -',
shell=True,
stdout=subprocess.PIPE,
universal_newlines=True
).stdout
Lambda上的Python 3.6。
用iconv"Filter"输出-忽略错误:
subprocess.getoutput('./pdftotext file.pdf - | iconv --to-code utf-8//IGNORE')
请随意添加您的答案——只是对其他解决方案和问题的根源感到好奇。
尝试下一个代码:
return subprocess.run(
'./pdftotext file.pdf -',
shell=True,
stdout=subprocess.PIPE,
universal_newlines=True,
encoding='your encoding',
errors='ignore', # 'ignore' or 'replace'
).stdout
更多关于:https://docs.python.org/3/library/stdtypes.html#bytes.decodehttps://docs.python.org/3/library/codecs.html#error-处理程序