
MacでUTF-8原稿を受け取ったら、編集前に「UTF-8として妥当か」「BOMがあるか」「改行はLFかCRLFか」を別々に観測します。本記事は値を読むところまでが担当です。変換、修復、候補比較、保存後の採否判断は行いません。
画面に同じ日本語が見えても、先頭バイトと行末バイトは違うことがあります。そこでターミナルのxxdとiconvを使い、原稿へ書き込まずに観測します。以下はmacOS上で2026年8月11日に確認した一般コマンドの結果で、Rune Studio固有の実測ではありません。
UTF-8として読めるかを先に確認する
対象をmanuscript.txtとすると、次のコマンドはUTF-8として解釈できないバイトがある場合にエラーを返します。
iconv -f UTF-8 -t UTF-8 manuscript.txt >/dev/null
終了しても「元の符号化は必ずUTF-8」とまでは証明しません。ASCIIだけのファイルなど、複数の符号化で同じバイトになる場合があるためです。受領元の申告と文字コード表示も併記し、ここでは「UTF-8として妥当なバイト列だった」と記録します。
BOMは先頭3バイトだけを見る
先頭3バイトは次で読めます。
xxd -l 3 -g 1 manuscript.txt
UTF-8のBOMはef bb bfです。表示された3バイトがこれと一致すれば「UTF-8 BOMあり」、一致しなければ「UTF-8 BOMなし」です。BOMがないことだけでUTF-8と断定はしません。
確認用の一文校正開始をUTF-8/LFにした実値は、BOMなしがe6 a0 a1で始まり、BOMありがef bb bf e6 a0 a1で始まりました。これは対象原稿の値ではなく、見分け方を固定するための管理標本です。
改行は0Aと0D 0Aを区別する
行末付近をxxd -g 1 manuscript.txtで表示します。LFは0a、CRLFは0d 0aです。BOMとは別の属性なので、「BOMあり/LF」「BOMなし/CRLF」のように二欄へ書きます。
同じ一文の管理標本では、UTF-8/LFの末尾が... e5 a7 8b 0a、UTF-8/CRLFの末尾が... e5 a7 8b 0d 0aでした。改行の種類を数える必要がある大きな原稿では、全体を扱う別の検査へ渡します。本記事は代表行のバイト観測に限定します。
観測カードは値と解釈を分ける
引き継ぎカードは次の四欄で十分です。
| 観測項目 | 実値欄 | 解釈欄 | 注意 |
|---|---|---|---|
| UTF-8妥当性 | iconvの終了結果 |
妥当 / エラー | 元符号化の断定ではない |
| 先頭3バイト | 例:ef bb bf |
BOMあり / なし | BOMの採否は決めない |
| 代表行末 | 例:0d 0a |
CRLF / LF | BOMと統合しない |
| 対象 | ファイル名・SHA-256 | 観測した版 | 別版へ流用しない |
値が取れなかった欄は「なし」ではなく「未観測」です。対象ファイルの名前だけでなくSHA-256を添えると、別担当が同じ版を見たか確認できます。SHA-256はshasum -a 256 manuscript.txtで読みます。
観測カードにはコマンド文字列も残します。ファイル名に空白がある場合は引用符で囲み、実行した対象を取り違えないようにします。出力のスクリーンショットだけでは、どの版を読んだか分からないため、対象SHAとコマンド結果を同じ行へ置きます。
一つの原稿にLFとCRLFが混在している可能性がある場合、代表行の値を全体値へ広げません。「代表行はLF、全体混在は未観測」と記します。また、先頭がef bb bfでない結果を「BOMなし」と書くことはできますが、「UTF-8確定」とは書きません。実値と解釈の範囲を守ることが、次工程の誤変換を防ぎます。
Rune Studioが担うのは文字コード安全機能まで
Stage 3資料では、Rune Studioが主要な日本語文字コードを判定し、変換不能文字を表示し、未解決時の自動保存を止めることを確認しています。これは原稿を開く前後の安全機能として使えます。
一方、BOMの有無、先頭バイト、LF/CRLFをRune Studioが自動検査するという根拠はありません。本記事のxxd結果を製品機能として書き換えません。変換作業はSTUDIO-534、保存停止の運用はSTUDIO-065、事故分類はSTUDIO-006へ渡します。

変更前カードを渡したら観測は完了
完了条件は、対象の識別子、UTF-8妥当性、先頭3バイト、代表行末が実値で埋まり、推測と未観測が区別されていることです。BOMを付ける・外す、改行を揃える、別名保存する、といった変更はこのカードの外で行います。
最初にxxd -l 3 -g 1で先頭を読み、次に代表行末を見ます。二つを別欄へ写すだけで、見た目が同じファイルをBOMや改行の推測で扱う事故を減らせます。観測日時とmacOS環境も添えれば、再観測時の差を同じ条件で説明でき、再現性も上がります。


