encoding の文字コードの順番を変更できますか。

calc でcsv を読み込む時、utf-8 やShift-jis に指定しますが、文字コードの順番の最初と最後で 指定するのが面倒です。順番を自分で変更したいと思っています。主に ubuntu 系(MINT) で使っています。ほとんど使わない文字コードをリストから外すでも良いです。

エンドユーザー的には困難、開発者的にはやろうと思えば出来る。

https://opengrok.libreoffice.org/xref/core/svx/inc/txenctab.hrc?r=c89a4996#30

https://opengrok.libreoffice.org/xref/core/svx/source/dialog/txencbox.cxx?r=1f625b3f#182

1 Like

お教え有難うございます。ソースまで行かず、何か設定用のファイルがあればと期待していたのですが。 気合がでたらいじってみようと思います。

ちょっとだけ路線が違うメモ

tdf#135441

質問者さんの希望に近い方法が2つあります。

  1. PageDown(WindowsではEnd) キーで最後にジャンプしてから選択を始める

  2. オプションの変更が無く文字コードの2者択一なら、コマンドラインで起動する
    一般的なパラメータは --infilter=“CSV:44,34,UTF8,1”
    Shift-JISなら --infilter=“CSV:44,34,SHIFTJIS,1”
    「44」 を 「9/44」にするとタブ区切りにも対応し汎用性が高まります。

以下は、Windows用コマンドラインのサンプルです。

@echo off
setlocal ENABLEDELAYEDEXPANSION

echo --- 最初の行を表示 ---
  set /p A=<%1
  echo !A!
echo ----------------------

  set chkCode=""
  set /P chkCode="Shift-JIS or UTF-8? 正しく表示されたら Shift-JIS 何も入力せず Enter : "
  IF %chkCode%=="" (set strCode=SHIFTJIS) ELSE (set strCode=UTF8)
  echo %strCode%

@echo on
 【各々の環境でPathを指定】 \soffice.exe --infilter="CSV:44,34,%strCode%,1" %1
4 Likes

質問者のものです。キーボードのボタンを用いる方法、および起動時のオプションの方法、私の目的に合致してました。オプションの使い方の詳細なページも見つけられ、いろいろ試しているところです。非常に参考になりました。有難うございます。

投稿の編集方法わからないので、ここで訂正します。

Shift-JISなら --infilter=“CSV:44,34,64,1”

以下は、Windows用バッチファイルのサンプルです。

IF %chkCode%=="" (set strCode=64) ELSE (set strCode=UTF8)

Windowsでたまたま動いていただけのようです。
間違いにより混乱させていたかもしれません。

ちなみに、バッチファイルはCSVファイルをドロップすると起動したり、
登録しておくとCSVファイルをダブルクリックすると起動するやつです。
サンプル内の 「%1」は CSVファイル名が勝手に入ってくれる引数です。

Linuxではシェルスクリプトというやつかもしれません。
バッチより遥かに高度なことが簡単にできるようです。

これか。

https://opengrok.libreoffice.org/xref/core/sc/source/core/data/global.cxx?r=2de99501&fi=GetCharsetValue#553

https://opengrok.libreoffice.org/xref/core/include/rtl/textenc.h?r=b1fb6338#105