
Macで標準SHIFT_JIS原稿をUTF-8へ変換するなら、原本を残し、入力符号化と出力符号化をコマンドで明示します。本記事の担当は、可逆変換の具体手順と変換前後の値です。候補アプリの比較、BOMの事前判定、事故全体の分類は扱いません。
以下はmacOSの一般コマンドiconvによる経路です。Rune StudioのStage 4操作ではありません。入力がWindows-31J / CP932やShift_JIS-2004なら、SHIFT_JISと読み替えず、その正確な符号化名を確認して別工程にします。
原本・作業入力・UTF-8出力を三つのパスに分ける
原本をsource-original.txt、作業入力をsource-working.txt、出力をmanuscript-utf8.txtとします。変換前に三つが同じパスでないことを確認し、原本のSHA-256を記録します。
shasum -a 256 source-original.txt
cmp source-original.txt source-working.txt
cmpが差を返したら始めません。以後の入力は作業用複製だけです。原本のハッシュは変換後も同じである必要があります。
入力SHIFT_JISを一度UTF-8へ読み出して確認する
まず作業入力を標準SHIFT_JISとしてUTF-8へ読み出し、端末へ捨てます。
iconv -f SHIFT_JIS -t UTF-8 source-working.txt >/dev/null
エラーが出たら、入力符号化の申告が違うか、標準SHIFT_JISで解釈できないバイトがあります。別の符号化を推測して上書きせず停止します。成功は「標準SHIFT_JISとして変換可能」の確認であり、文章の意味が正しいという校閲結果ではありません。
出力をUTF-8へ固定して別名で作る
iconv -f SHIFT_JIS -t UTF-8 source-working.txt > manuscript-utf8.txt
iconv -f UTF-8 -t UTF-8 manuscript-utf8.txt >/dev/null
最初の行で入力をSHIFT_JIS、出力をUTF-8に固定します。二行目は生成物がUTF-8として妥当かを確認します。既存の出力を誤って上書きしない運用では、実行前に保存先が未使用であることも確認します。
管理標本の前後値を基準にする
管理標本は次の二行です。
第一章
「校正開始」
2026年8月11日にmacOSのiconvで確認した実値は次の通りです。
| 項目 | SHIFT_JIS入力 | UTF-8出力 |
|---|---|---|
| バイト数 | 20 | 29 |
| SHA-256 | 66f8cc846210710fa956a4e42396b43a80ec5ca67df9b22aaa49a14da2342e78 |
2a76f1851bcd10dba3f725c5f4e49d73ccf6055370d5ab90083fade519ecb760 |
| 先頭 | 91 e6 88 ea 8f cd |
e7 ac ac e4 b8 80 |
| UTF-8をSHIFT_JISへ戻した後のSHA-256 | — | 66f8cc846210710fa956a4e42396b43a80ec5ca67df9b22aaa49a14da2342e78 |
符号化を変えればバイト数とハッシュは変わるので、入力と出力のハッシュ一致を求めません。代わりに、UTF-8出力を標準SHIFT_JISへ戻したバイト列が入力と一致することを確認します。
iconv -f UTF-8 -t SHIFT_JIS manuscript-utf8.txt | cmp - source-working.txt
差がなければ、この標本は往復可能です。実原稿でも同じ確認を行いますが、変換不能文字や正規化の要否がある原稿は停止して個別承認へ渡します。
cmpが差を返した場合は出力を採用せず、入力符号化、変換エラー、文字の正規化を別の原因として記録します。差がある状態で再変換を重ねません。
本文同一性は代表文でも確認する
バイトの往復に加え、冒頭・中央・末尾から代表文を一つずつ選び、UTF-8出力で同じ文字列か確認します。これは符号化変換と校閲を混ぜないための目視照合です。文字数だけが同じでも置換を見逃す可能性があるため、代表文を併記します。
変換票には入力ハッシュ、出力ハッシュ、バイト数、往復cmp結果、代表文3箇所の一致を残します。BOMと改行の採否は別の仕様項目とし、本記事の変換成功へ自動的に含めません。
Rune Studioは変換前の警告入口に限定する
Stage 3資料では、Rune Studioが主要な日本語文字コードを判定し、変換不能文字を赤表示し、解消まで自動保存を止めることを確認しています。iconv変換前の問題発見に関係する機能です。
Rune Studioで上記コマンド相当の変換を完遂したStage 4根拠はありません。したがって、変換実行、往復一致、20バイトから29バイトへの結果を製品実績にはしません。これらは一般コマンドで確認した管理標本の値です。

一章で往復一致してから対象を広げる
原本ハッシュが不変、UTF-8出力が妥当、往復cmpに差なし、代表文3箇所が一致、という条件が揃えば一章の変換は受け渡せます。どれかが欠ければ原本へ戻り、出力は採用しません。
可逆性は「元へ戻せる証拠」があることです。候補比較はSTUDIO-029、変更前のBOM・バイト観測はSTUDIO-521、入稿時の意味承認はSTUDIO-146へ渡します。


