大量データをテキストエディタで開き、文字コードエラーが疑われるときは、元ファイルを上書きせず、複製で変換不能文字を検出し、拒否された出力は採用しません。修正版は別名で保存し、「元原稿が変わっていない」「変換不能候補が0件」「固定した照合点が残る」の三条件で受け入れます。32万文字の専用複製では、Shift_JISで表せない文字1件を検出し、別パスへの書き込み拒否から修復コピーの再読込まで確認できました。
エラーの疑いがあるファイルは隔離する
メール添付や古い制作環境から受け取った原稿では、見た目が正常でも一部の記号だけが別の文字へ変わることがあります。最初に received-original.txt を読み取り専用の保管用とし、作業用に encoding-check.txt を複製します。
この段階では文字コードを推測して変換しません。まず、アプリが示す検出値を記録し、丸数字、波ダッシュ、機種依存文字、私用領域の文字など、変換先で問題になりやすい場所を探します。候補が見つかったら、元の文字、採用する代替文字、変更理由を一行ずつ残します。
実際に使う出力形式へ合わせることが大切です。UTF-8では保存できる文字でも、Shift_JISでは表せない場合があります。今回の専用複製には絵文字 😀 を1件だけ置き、Shift_JISへ変換したときに候補として返る状態を作りました。元原稿に試験文字を追加せず、破棄できる複製だけで行うのが前提です。
32万文字の原稿で変換エラーを再現する
今回の作業用原稿は32万文字、UTF-8、改行LF、6行です。Shift_JISとして検査すると、末尾近くの 😀 1件が変換不能候補になりました。次に、元複製の内容を別パスへShift_JISで書き込む操作を行うと、変換不能として拒否され、出力ファイルは作られませんでした。
確認する値は次のとおりです。
| 項目 | エラーを含む元複製 | 別名UTF-8修復コピー |
|---|---|---|
| 文字コード | UTF-8 | UTF-8 |
| 改行 | LF | LF |
| 文字数 | 320,000 | 320,000 |
| 大きなファイルという判定 | true | true |
| Shift_JIS変換不能候補 | 1件 | 0件 |
| 固定した照合点 | 修復前の基準を記録 | FIXED660-A、FIXED660-Bが各1件 |
拒否された書き込みの前後で元複製のSHA-256は一致し、元原稿に変更がないことも確認しました。候補文字を承認した文字へ置き換えた別名UTF-8コピーは、32万文字、変換不能候補0件として読み戻せました。二つの固定目印も各1件でした。つまり今回は、実際の変換エラーを検出し、失敗出力を作らず、元を保ったまま別名修復コピーを受け入れるところまで一続きで確認しています。
拒否された出力を採用せず、別名コピーを検査する
- 受領ファイルを複製し、元ファイルは変更しない。
- 検出文字コード、改行、文字数、変換不能候補を読む。
- 目的の文字コードで書き込みを試し、拒否された出力が存在しないことを確かめる。
- 候補文字の意味を確認し、代替するか、UTF-8のまま渡すかを決める。
repaired-utf8-copy.txtのような新しい名前で保存する。- 別名ファイルを開き直し、候補0件、文字数、固定した照合点を確認する。
末尾マーカーは本文に存在しない固有の短い文字列にします。変換前後の文字数が同じでも、置換によって意味が変わることはあるため、候補文字の対照表も必要です。反対に、末尾だけ合っていても途中の文字が化けている可能性は残ります。
長い原稿では、末尾だけでなく途中にも照合点を置くと欠落箇所を絞れます。32万文字なら、8万、16万、24万文字付近に既存の章見出しや固有語を一つずつ選び、別名保存後に同じ語が一件ずつあるか確かめます。確認用の文字を本番本文へ追加したくない場合は、章見出しとその直後の一文を照合点にします。
採用判断は「開けた」ではなく、先頭・途中・末尾がそろい、変換候補を一件ずつ説明できることです。候補が0件ならその値を残し、候補があるなら元文字と修正後を対にします。説明できない候補が一つでもあれば、safe-copy.txt を元原稿へ置き換えず、受領時のファイルと作業用複製を並べて再確認します。
資料上の画面挙動と実測した書き込み拒否を分ける
Rune Studioの現行Mac版について、公開機能説明には、主要な日本語文字コードを判定し、変換不能文字を赤く示し、解消するまで自動保存を止める仕組みが記載されています。これは資料で確認できる画面を含む挙動です。
今回実測したのは、変換不能候補1件、別パスへの書き込み拒否、出力未作成、元原稿のハッシュ不変、別名修復コピーの候補0件です。警告ダイアログ、赤い表示、保存ボタンが使えない見え方、自動保存の停止と再開は画面で確認していません。画面の案内を判断材料にする場合は、現在版の小さな複製で読者自身が表示を確かめてください。Mac間の速度比較もこの記事では扱いません。
結論:元ファイルを守り、エラー標本は複製で扱う
大量データの保存事故を防ぐ中心は、早く保存することではなく、拒否された状態を元原稿へ戻さないことです。複製で実際の変換エラーを検出し、失敗出力がないことと元原稿が変わっていないことを確かめます。その後、別名修復コピーを候補0件、文字数、照合点で受け入れます。自動保存の運用ではなく、エラーの隔離と安全なコピーの採用に集中するのが、この場面の判断です。
文字コード保護を備えた現行Mac版の説明は、Rune Studio公式サイトで確認できます。