文字化けで止まらない!EPUB化のやり方、変換不能文字を保存・出力前に見つける

本全体のepub 化 やり方で文字化けを避けるには、最初に全章の文字コードを棚卸しし、例外章を分けてからUTF-8へ統一します。多数派の形式を本全体の形式だと思い込むと、一章だけShift_JISやUTF-16だった場合に内容を壊します。章ごとの原本、診断値、変換後ファイルを一行ずつ対応させるのが基本です。

全章を変換する前に一覧を作る

章番号、ファイル名、更新時刻、検出したencoding、改行方式、文字数、変換状態の列を用意します。拡張子や作成日の近さだけで同じ形式と判断しません。古い章の流用、共同執筆、別ソフトからの貼り付けがある本では、混在しやすいためです。

原本は専用フォルダへ保全し、変換先を別フォルダにします。変換後も同じファイル名を使う場合は、親フォルダで区別します。章集合の統一では、どの出力がどの原本から来たかを追えることが欠かせません。

一覧を作った時点で、章数とファイル数が一致するかも見ます。一つのファイルに複数章がある場合は、章数とファイル数を別の列にします。単純な件数一致だけで選択漏れを判断しないためです。

例外章を先に処理する

一覧で少数派のencodingを持つ章、変換不能候補がある章、文字数が極端に違う章を例外キューへ入れます。全章一括処理の前に、例外を一件ずつ試します。難しい章で方式が成立すれば、残りへ広げる判断がしやすくなります。

今回の保存証拠は三行のShift_JIS合成原稿です。Runeの検査値はShift_JIS、LF、36文字で、別名UTF-8へ変換した後はUTF-8、LF、36文字でした。これは一つの制御標本であり、見ていない章の安全性まで証明しません。

原本を残したまま変換する

変換元を検査結果に合わせ、UTF-8の別ファイルへ出力します。終了コード、標準エラー、出力SHA-256を保存し、再びRuneでencodingと改行方式を読みます。成功通知だけで元ファイルを削除しません。

変換前後では、章題、人物名、長音、ダッシュ、三点リーダー、章末文を比較します。文字数が同じでも同長の誤置換はあり得ます。文章の意味を読む点検を省くと、機械値だけがきれいな文字化け原稿を作る恐れがあります。

章をまたぐ連続性を確認する

単章診断と違い、本全体では章境界も対象です。前章末から次章頭への時間、番号、注記がつながっているかを確認します。ファイル順を変換処理の並びに任せず、承認済みの章順表へ合わせます。

各章の変換後ファイルに合格印を付け、全件そろってからEPUBへ選択します。未変換章と変換済み章を同じフォルダで混ぜると、古い方を出力する事故が起きます。選択元フォルダを一つに限定します。

一括処理を自動化する場合でも、例外キューは人が読みます。終了コード0の章だけを集める仕組みでは、同じ長さの誤置換を検出できません。固有名詞と章末文の承認欄が空なら、出力候補へ移しません。

EPUBで本全体を再読込する

制御標本から作った小さなEPUBは、タイトル、nav、本文、奥付を含み、欠落資源0件、ローカル検査valid=trueでした。本文へのnavとNCX参照も実在します。この値は変換後ファイルをパッケージへ渡せたことの確認です。

実際の本では、全章数、spine順、nav件数、画像参照、欠落資源を章一覧と照合します。変換に成功しても、章の選択漏れや並び違いは別に起こるためです。文字コード合格とパッケージ合格を分けて記録します。

再出力では、前回のEPUBと新しいEPUBの章数、順序、欠落数を比較します。変更対象が一章だけなら、それ以外の章の承認値が動いていないことも確かめます。全件を作り直して結果だけ眺めるより、差分を限定したほうが安全です。

Rune Studioの赤表示や自動保存停止は公開資料にありますが、今回のCLI実行では画面を見ていません。また、販売先の受理やすべてのフォント字形も確認していません。観測した範囲を越えて保証しないことが大切です。

本全体を渡す条件

検査表は、変換完了の件数だけでなく未処理と除外の件数も集計します。全20章のうち19章合格と書けば、一章が抜けたことが分かります。19/19合格とだけ書くと、最初から対象が19章だったように見えるため避けます。

差し替えが発生した章は、旧結果を隔離して新しいSHA-256を一覧へ反映します。EPUBを再生成するときは最新合格版だけを選び、同名の旧章が検索結果へ残らないようにします。これが本全体の入力を一意にする最後の準備です。

完成条件は、全章に原本との対応があり、各変換後ファイルをUTF-8/LFとして開き直せ、代表文字列が一致し、章境界がつながり、EPUBの章順と参照欠落を確認できることです。多数派の章だけが通っても完了ではありません。

この方法は、複数の古い原稿をMac上で一冊へまとめる人に向きます。一章だけの原因診断なら小さな標本の記事、校了版の入稿引き渡しなら最終版の保全手順を使うほうが焦点が合います。まず全章一覧を作り、最も古い一章を例外候補として診断してください。一覧には、原本の保管場所、検出符号、変換先、再読込日、照合担当者を持たせます。章が追加されたら同じ欄を一行追加し、既存の合格行を書き換えません。この履歴があれば、後から混入した一章だけを切り離して再処理できます。