Wer*_*001 2 encoding stdin utf-8 unoconv
我unoconv用来转换docx成pdf。只要我通过文件名传递文档,一切都很好:
$ unoconv -f pdf --stdout test.docx
Run Code Online (Sandbox Code Playgroud)
但是,一旦我使用--stdin它就不再起作用了:
$ unoconv -f pdf --stdin --stdout < test.docx
Traceback (most recent call last):
File "/usr/bin/unoconv", line 1275, in <module>
main()
File "/usr/bin/unoconv", line 1185, in main
inputfn = sys.stdin.read()
File "/usr/lib/python3.5/codecs.py", line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xad in position 41: invalid start byte
Run Code Online (Sandbox Code Playgroud)
这是同一个文件。为什么不起作用?
我认为问题在于该--stdin选项无法实现人们可能认为的功能。
在错误消息中,第1185行中的变量名称看起来可疑:
inputfn = sys.stdin.read()
Run Code Online (Sandbox Code Playgroud)
确实,检查源代码后,似乎从STDIN读取的文本被解释为文件名,而不是文件内容。
但是,文档(man unoconv)具有误导性:
--stdin
从stdin读取输入文件(如果提供,则忽略文件名)
这听起来确实不像将输入解释为文件名。
我建议您提交有关此问题的错误报告(也许首先检查是否已经存在)。
| 归档时间: |
|
| 查看次数: |
348 次 |
| 最近记录: |