違いを見逃さない!EPUB制作ソフト、文字化けを防げる処理を見極める

文字コードの失敗を切り分けてEPUB制作ソフトを選ぶアイキャッチ

EPUB制作ソフトを文字化け防止で選ぶなら、保存後の見た目から始めず、包装前の原稿を入口で分けます。UTF-8、Shift_JIS、UTF-8 BOM付きの三複製について、原本ID、期待文字コード、読取結果、問題文字の位置を記録し、「包装可」「隔離」「判断待ち」のどれかへ分類します。

この記事の出口は、安全な入力だけをEPUB生成工程へ渡せる状態です。単一のShift_JIS原稿で二文字を直し、UTF-8で別名保存する作業は、入口判定後の修正工程として分けます。価格順位、他社名、ストア側の再変換も扱いません。

EPUB包装前に三入力を入口判定する

「日本語対応」や「複数の文字コードに対応」という表示だけでは、今回の原稿を包装へ進められるか分かりません。三つの入力を同じ表へ置き、期待した文字コードで読めるか、問題文字の位置を追えるかを別々に確認します。

包装可は、原本を特定でき、期待した文字コードと読取結果が一致し、記録した本文位置を再確認できる場合です。隔離は、文字コードまたは本文位置が期待と食い違う場合。判断待ちは、判定方法や問題位置を取得できない場合です。

原本ハッシュと期待文字コードを固定する

同じ短編からINPUT-U8、INPUT-SJIS、INPUT-BOMを作り、変更前のハッシュ、サイズ、更新日時を記録します。各複製へ問題文字IDENC-AとENC-Bを置き、前後の短い文章も控えます。

拡張子やファイル名から文字コードを推測しません。INPUT-U8とINPUT-BOMは本文が同じでも別入力として識別し、先頭バイトを含む取得値を別々に残します。INPUT-SJISも、設定欄でShift_JISを選んだだけでは期待値との一致にしません。原本ID、実際の読み取り、問題位置の三つが同じ入力へ結び付いたときだけ次の包装工程へ渡します。

入口表には判定日時と使用版も添えます。後日同じ入力を再判定した際、以前の読取結果と混ざらず、変更された行だけを追跡できます。

再判定でも原本IDは変えず、結果履歴だけを追加します。

候補ごとに別の原稿を使うと、ソフトの差と入力の差を分けられません。検査中は原本を上書きせず、入口表の対象IDを固定します。

読み取り結果と問題位置を別欄にする

一つ目の欄には、候補が示した文字コードと、本文を実際に読めたかを書きます。二つ目の欄には、ENC-AとENC-Bの位置を再特定できたかを書きます。

文字コード名が表示されても本文が崩れていれば包装可ではありません。反対に本文が一見読めても、期待文字コードや問題位置を説明できなければ判断待ちです。BOM付き入力では、先頭に不要な文字が現れていないかも独立して記録します。

包装可・隔離・判断待ちへ分ける

三入力を総合点で並べず、一入力ずつ出口を付けます。

隔離した入力はEPUB生成へ渡しません。どの文字へ直すか、別の文字コードへ変換するかは編集判断なので、この入口検査とは分けます。

保存変換を入口検査へ混ぜない

タブや設定で文字コードを選べたことと、物理ファイルがその文字コードへ変換されたことは同じではありません。保存先、再読込、バイト列まで確認して初めて変換結果を語れます。

本記事では入口判定を終えた時点で止めます。UTF-8別名保存や問題文字の置換結果を、未実施のまま包装可へ加点しません。

Rune Studioで確認できた範囲

Rune Studioの公開資料には、主要な日本語文字コードの判定、選択中の文字コードで表現できない範囲の赤背景表示、未解消時の自動保存停止が記載されています。これらは入口検査の候補条件です。

実際の確認では、UTF-8/LFのファイルをUTF-8/LFと判定できたことと、タブへShift_JISの選択値を保存して再読込できたことまでを確認しました。一方、実ファイルはUTF-8/LFのままで、三入力の赤表示、保存停止、変換、再読込は完遂していません。したがって、資料上の機能をこの記事固有の合格結果とは書きません。

画面の下にUTF-8とLFが表示されたRune Studioの編集画面
編集画面の下に、開いている原稿の文字コードUTF-8と改行コードLFが表示されています。表示は選んでいる値であり、保存されたファイルのバイトがそのとおりかは別に確かめます。

結論:包装へ渡せる入力だけを確定する

EPUB制作ソフトの文字化け対策は、三入力を一括して「対応」と評価することではありません。原本ID、期待文字コード、読取結果、問題位置を入力ごとに記録し、包装可、隔離、判断待ちへ分けることです。

まず三つの複製と二つの問題文字IDを用意してください。Rune Studioを候補にする場合は、Rune Studioの商品ページで現行Mac版の資料範囲を確認し、未完了の赤表示や保存動作を実測済みとして扱わないようにします。

判定中に文字コードを誤って選んだ場合は保存せず、その複製を閉じて原本から作り直します。三入力それぞれについて期待文字コード、実際の読取結果、二つの問題文字の位置、保存可否を記録し、すべて一致した入力だけを「包装可」にします。一件でも文字が置換された、位置が分からない、保存が自動で進む、再読込結果を確認できない場合は隔離し、生成工程へ渡しません。

隔離した複製は判定票と同じIDで残し、失敗理由を後から「包装可」へ書き換えません。修正後は原本から新しい複製を作り、新しい行として入口判定を繰り返します。