コマンドラインの方の、AozoraEpub3.javaでは初期設定にMS932が指定されている。
String encType = "MS932";
そこから、オプション内容を読み込むか、AozoraEpub3.iniの設定ファイルを読み込むことで、文字コードが指定されている。
文字コード自動判別機能が正確であれば、文字コードの指定をなくして自動判別だけでいいが。必ずしも正確とは限らないのでオプションや設定で指定があればそれを利用して、何も指定がなければ自動判別するというのを考えている。
「前処理で一度読み込んでタイトル等の情報を取得」テキストファイルをEPUBに変換する前にタイトルや本の情報を一旦読み込んでbookinfoとしてためてからEPUBに変換している。そのために、共通部分の文字コード指定はどちらにも適応する必要がある。
現在の状態
ただ、文字コードを自動判別するには、テキストファイルを読み込む必要がある。
自動判別結果を読むのは、テキストファイルだけじゃなく圧縮ファイル内のテキストの場合もある。圧縮ファイルを展開して、テキストファイルを拡張子で判別して読み込み、テキストファイルの文字コードを判別する。
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だけになっていたのを自動を追加して、自動判別を選べるようにする。そして自動判別を初期設定にする。