KDP(電子出版)のメモ 急急如律令

Amazon Kindleダイレクト・パブリッシングでの電子出版や電子書籍の作成販売について、文章やイラストの作成や編集方法について書いています。

AozoraEpub3に文字コード自動判別機能を入れられるか調べてみた。

コマンドラインの方の、AozoraEpub3.javaでは初期設定にMS932が指定されている。

String encType = "MS932";

そこから、オプション内容を読み込むか、AozoraEpub3.iniの設定ファイルを読み込むことで、文字コードが指定されている。

 

文字コード自動判別機能が正確であれば、文字コードの指定をなくして自動判別だけでいいが。必ずしも正確とは限らないのでオプションや設定で指定があればそれを利用して、何も指定がなければ自動判別するというのを考えている。

「前処理で一度読み込んでタイトル等の情報を取得」テキストファイルをEPUBに変換する前にタイトルや本の情報を一旦読み込んでbookinfoとしてためてからEPUBに変換している。そのために、共通部分の文字コード指定はどちらにも適応する必要がある。

 

 

現在の状態

  1. 初期状態 MS932
  2. 設定ファイルかコマンドラインオプションで文字コードを指定。
  3. 指定された文字コードからテキストファイルを読み込む。

 

ただ、文字コードを自動判別するには、テキストファイルを読み込む必要がある。

  1. テキストファイルを読み込み、文字コードを自動判別
  2. 文字コードからテキストファイルを読み込む。

自動判別結果を読むのは、テキストファイルだけじゃなく圧縮ファイル内のテキストの場合もある。圧縮ファイルを展開して、テキストファイルを拡張子で判別して読み込み、テキストファイルの文字コードを判別する。

 

 GUIの方のAozoraEpub3ではweb小説変換機能のときに限って、UTF-8に切り替えている部分がある。

    jComboEncType = new JComboBox(new String{"MS932", "UTF-8"});
        //jComboEncType = new JComboBox(new String
{"MS932", "UTF-8","AUTO"});

 選択ボックスからMS932とUTF-8だけになっていたのを自動を追加して、自動判別を選べるようにする。そして自動判別を初期設定にする。

99nyorituryo.hatenablog.com