使用 libreoffice --convert-to csv 指定编码

Sco*_*ter 14 character-encoding unicode conversion libreoffice

Excel 文件可以使用以下方法转换为 CSV:

$ libreoffice --convert-to csv --headless --outdir dir file.xlsx
Run Code Online (Sandbox Code Playgroud)

一切似乎都很好。但是,编码设置为不稳定的东西。如果我从 LibreOffice Calc 手动“另存为”,我得到的不是 UTF-8 mdash (-),而是一个 \227 (?)。在 CSV 上使用文件给了我“非 ISO 扩展 ASCII 文本,行很长”。所以,两个问题:

  1. 这里到底发生了什么?
  2. 我如何告诉 libreoffice 转换为 UTF-8?

我要转换的特定文件在这里

Jim*_*m K 12

显然,LibreOffice 默认尝试使用 ISO-8859-1,这导致了问题。 为了响应此错误报告--infilter添加了一个新参数。以下命令生成U+2014 em dash

libreoffice  --convert-to csv --infilter=CSV:44,34,76,1 --headless --outdir dir file.xlsx
Run Code Online (Sandbox Code Playgroud)

我用 LO 5.0.3.2 对此进行了测试。从错误报告来看,包含此选项的最早版本似乎是 LO 4.4。

另见:https : //ask.libreoffice.org/en/question/13008/how-do-i-specify-an-input-character-coding-for-a-convert-to-command-line-usage/