Especifique a codificação com libreoffice --convert-to csv

10

Os arquivos do Excel podem ser convertidos em CSV usando:

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

Tudo parece funcionar bem. A codificação, no entanto, está definida como algo instável. Em vez de um mdash UTF-8 (-) que eu recebo se eu fizer um "save as" manualmente a partir do LibreOffice Calc, ele me dá um \ 227 ( ). Usando arquivo no CSV me dá "texto ASCII estendido não ISO, com linhas muito longas". Então, duas perguntas:

  1. O que está acontecendo aqui?
  2. Como eu digo ao libreoffice para converter em UTF-8?

O arquivo específico que estou tentando converter é aqui .

    
por Scott Deerwester 02.02.2016 / 17:33

2 respostas

6

Aparentemente, o LibreOffice tenta usar o ISO-8859-1 por padrão, o que está causando o problema. Em resposta a este relatório de bug , um novo parâmetro --infilter foi adicionado. O comando a seguir produz U + 2014 em traço :

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

Eu testei isso com o LO 5.0.3.2. A partir do relatório de erros, parece que a versão mais antiga contendo essa opção é LO 4.4.

Veja também:

    
por 02.02.2016 / 22:33
1

Você poderia tentar,

    $ libreoffice --convert-to \
    > csv:"Text - txt - csv (StarCalc)":"44,34,0,1,,0" \
    > --headless --outdir dir file.xlsx 

Aqui , você tem uma ajuda muito detalhada sobre o assunto.

    
por 02.02.2016 / 22:32