文字抜けを防ぐ第一歩は、壊れて見えるファイルをそのまま上書きしないことです。文字コードを推定し、別名のUTF-8ファイルへ変換し、同じ文章を再読込してからEPUBを作ります。この記事では epub 文字 抜けの予防を、Shift_JISの三行・36文字標本で説明します。赤表示と自動保存停止は公開資料上の機能で、今回の固定操作では画面の色や停止タイミングを実測していません。
異常を見つけたら保存せず複製する
四角や疑問符、読めない記号が見えたら、まず編集を止めます。誤った文字コードで開いた内容を保存すると、元のバイト列まで変わり、再解釈できる手掛かりを失うからです。原本を読み取り専用で残し、日時を付けた作業用コピーを作ります。
固定入力は legacy-source-sjis.txt です。三行36文字で、見出しと「夜風と水面を確認する合成文です。」を含みます。開始時のSHAとファイルサイズを記録し、以後は原本へ書き戻しません。
検出値と改行を先に記録する
入力検査では文字コードがShift_JIS、改行がLF、文字数が36でした。文字数は正しく復号した文字列に対する値です。バイト数や画面上の桁数とは区別します。改行方式も一緒に残すことで、変換後の差が本文か行末かを判断できます。
自動検出は候補であって、内容の正しさを決める編集判断ではありません。見出し、固有名詞、句読点を人が読み、期待する日本語になっていることを確かめます。候補が複数なら保存せず、別の読み方で比較します。
UTF-8の別名ファイルへ変換する
正しく読めた文字列を repaired-utf8.md として保存します。固定結果ではUTF-8、LF、同じ36文字として再取得できました。変換前後の本文をUnicode文字列として比較し、行数、各行、末尾改行も確認します。
同じ見た目でも別のコードポイントが使われる場合があるため、重要な記号や人名は個別に照合します。置換不能文字が一件でもあれば合格にせず、原本の該当バイトと期待文字を記録して編集者へ戻します。
変換ツールの設定も記録します。BOMの有無、改行変換、Unicode正規化を自動で変える設定があれば、意図したものだけを有効にします。設定を残さないと、同じ原本から別の修復版が生まれ、どちらを採用したか追えません。
EPUBを再開封し本文と資源を見る
修復ファイルから生成したEPUBは、閉じた後にもう一度開き、本文XHTMLを読みます。三行36文字の標本が期待どおり含まれ、欠落資源がないことを確認しました。生成完了の通知だけでは、文字列の保持を証明できません。
OPF、spine、本文XHTMLを同じEPUBから取得し、検査結果にはファイルSHAを付けます。別の試作EPUBと取り違えないためです。本文検索が0件なら変換元または出力対象を、文字が異なるなら復号または正規化を調べます。
赤表示と自動保存停止は別のUI試験にする
Rune Studioの公開資料には、文字コード異常時の赤表示や自動保存停止に関する説明があります。一方、今回の操作はコマンドで設定値とファイル内容を読み戻したものです。誤復号した画面を開き、赤い表示や自動保存の発火を決定的に観察してはいません。
画面試験を追加するときは、アプリ版、入力SHA、選んだ文字コード、警告文、保存操作前後の時刻を記録します。警告が出たことと、元バイト列が守られたことを別々に確認します。公開説明を実測値の代わりにしません。
試験は必ず複製で行います。わざと誤った復号状態を作る操作を本番原稿へ向けると、警告機能を確かめるために資料を壊しかねません。保存が止まった場合と、ユーザーがキャンセルした場合も別の結果として記録します。
文字数が同じでも内容差を見逃さない
二つの文章が36文字でも、文字が一つ入れ替わっている可能性があります。合否は総数だけでなく、行ごとの一致と重要語の照合で決めます。異体字、波ダッシュ、引用符、濁点の結合状態は特に注意します。
差を見つけたら、どちらかへ機械的に寄せず、原本のバイト、正しく読める既存版、著者の意図を並べます。採用文字を決めた記録を残し、新しい修復版を作ってEPUB検査を最初から行います。
複数章を一括変換した場合は、章ごとに代表文字を一つずつ選びます。冒頭章だけの成功で全冊を合格にせず、固有名詞や旧字体を含む章を優先して確認します。差分一覧は自動置換の結果と人が承認した修正を分けて保存します。
原本・修復版・出力を三点で渡す
引き継ぎには原本のShift_JIS/LF/36文字、修復版のUTF-8/LF/36文字、EPUB内の本文一致と欠落0を記します。画面の赤表示、自動保存停止、破損済みデータの完全復元、OCRやバイナリ修復は対象外です。
原本を保全し、別名で直し、再読込してから出力する順序を崩さないことが最大の予防策です。次の担当者はSHAで三つの成果物を特定し、修復版を正本へ採用するかを編集判断として決めます。ツールの警告は重要ですが、原本保全と内容照合を省略する理由にはなりません。