我正在尝试通过使用pandoc将邮件接收的.docx转换为正确的pdf(我正在使用GNU / Linux)。
我有一个关于字符编码的错误:
$ pandoc file.docx -o file.pdf
pandoc: Cannot decode byte '\x87': Data.Text.Encoding.decodeUtf8: Invalid UTF-8 stream
我试图识别编码:
$ file -i file .docx 
file.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary
我有点惊讶charset=binary(我原以为是charset=iso8859-15)。但是我还是试图将.docx转换为utf8,但它不起作用:
 $ iconv -t utf-8 file.docx
P!      $iconv: séquence d'échappement non permise à la position 16
我在pandoc文档的命令行中有相同的错误:
iconv -t utf-8 file.docx | pandoc | iconv -f utf-8
如何使用Pandoc将.docx转换为pdf?
iconv使用该-f标志提供源字符集。例如,iconv -f ISO-8859-15 -t utf-8 file.docx可能有效。不过,不知道.docx文件的格式是什么。
                iconv直接在.docx文件上运行不太可能。iconv假定其输入是某种指定或推断格式的文本文件。一个.docx文件实际上是包含(主要)XML文件的zip文件(压缩档案)。可以想像,您可能会有些运气来解压缩.docx文件,iconv在组成文件上运行,然后将所有内容重新压缩回一个新的.docx,但是我敢打赌它不会工作。一方面,包含文档实际内容的xml文件指定了其编码:encoding="UTF-8"例如。
                