libreoffice --convert-to csv를 사용하여 인코딩을 지정하세요.

libreoffice --convert-to csv를 사용하여 인코딩을 지정하세요.

다음 방법을 사용하여 Excel 파일을 CSV로 변환할 수 있습니다.

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

모든 것이 잘 작동하는 것 같습니다. 그런데 인코딩 설정에 이상한 점이 있습니다. UTF-8 mdash(—) 대신 LibreOffice Calc에서 수동으로 "다른 이름으로 저장"하면 \227(�)이 표시됩니다. 사용문서CSV의 내용에 "비ISO 확장 ASCII 텍스트, 줄 길이"가 표시됩니다. 따라서 두 가지 질문이 있습니다.

  1. 여기서 무슨 일이 일어나고 있는 걸까요?
  2. libreoffice에 UTF-8로 변환하도록 어떻게 지시합니까?

변환하려는 특정 파일은 다음과 같습니다.여기.

답변1

분명히 LibreOffice는 기본적으로 ISO-8859-1을 사용하려고 시도하므로 문제가 발생합니다. 이 버그 보고서에 응답하세요.--infilter, 새로운 매개변수가 추가되었습니다. 다음 명령은U+2014 대시:

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/

답변2

시도해 볼 수 있습니다.

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

여기, 매우 자세한 도움말이 있습니다.

관련 정보