Character-Encoding

使用 libreoffice –convert-to csv 指定編碼

  • February 2, 2016

可以使用以下方法將 Excel 文件轉換為 CSV:

$ libreoffice --convert-to csv --headless --outdir dir file.xlsx

一切似乎都很好。但是,編碼設置為一些不穩定的東西。如果我從 LibreOffice Calc 手動執行“另存為”,我得到的不是 UTF-8 mdash (-),而是一個 \227 (�)。在 CSV 上使用文件會給我“非 ISO 擴展 ASCII 文本,行很長”。所以,兩個問題:

  1. 這裡到底發生了什麼?
  2. 如何告訴 libreoffice 轉換為 UTF-8?

我要轉換的特定文件在這裡

顯然 LibreOffice 預設嘗試使用 ISO-8859-1,這導致了問題。 為了響應此錯誤報告,添加了一個新參數--infilter。以下命令產生U+2014 em dash

libreoffice  --convert-to csv --infilter=CSV:44,34,76,1 --headless --outdir dir file.xlsx

我用 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/

引用自:https://unix.stackexchange.com/questions/259361