違いを見逃さない!Macでおすすめのテキストエディタ、文字化けを防げる処理を見極める

同じ原稿の三つの文字コード経路を警告ゲートに通し、安全な保存と再読込を確認するアイキャッチ

Macのテキストエディタで文字化けを防げる処理を見極めるなら、一つの固定ファイルを別名保存し、閉じてから再度開き、保存前と同じ内容を読めるか確認します。rune Studio 1.4.0 build 23の正式開発版CLIでこの一往復を実行したところ、固定したUTF-8(BOMなし)/LFの一件は、バイト列と製品読込結果の両方が一致しました。

これは開発版CLIで確認した156-byteの一ファイルだけの結果です。GUIの見た目、App Store版、別の原稿、別の符号化・改行、アプリ終了経路、候補同士の順位までは証明しません。本記事は、この限定付きの一往復を選定材料へ加える方法だけを扱います。

入力条件を一件へ固定する

試験用ワークスペースにreopen-input-01.txtを作り、内容を次の三文へ固定しました。

冒頭代表文:朝の原稿を確認します。
中央代表文:同じ文字列を保ちます。
末尾代表文:再読込後に照合します。

正式開発版CLIのfile writeでUTF-8とLFを指定し、file readで入力を読みました。開始値は次のとおりです。

項目 開始値
ファイル reopen-input-01.txt
符号化・改行 UTF-8(BOMなし)/LF
SHA-256 86b87c3d426a4fc4c1a2511be74be526cd128b9b23b3ae44d9f5fda175b38a2f
バイト数 156
改行バイト CR 0件/LF 3件
製品読込 UTF-8、LF、54文字、4行

先頭3バイトはe5 86 92で、UTF-8のBOMであるef bb bfはありません。入力を別の符号化へ変換する試験ではなく、同じ条件のまま保存し直して読めるかを見る試験です。

内容を変えずに別名保存する

入力タブを開いた後、file writeで入力内容を読み、同じUTF-8とLFを指定してreopen-output-01.txtへ保存しました。入力と出力を別パスにし、元の一件を上書きしていません。書込みは156 bytesで完了しました。

このfile writeは、製品の読込処理で入力内容を取得し、製品の書込み処理へ符号化と改行を渡す正式CLI経路です。実行前のdry-runと実行はいずれも終了コード0でした。

閉じた後は新しいタブで再度開く

出力を最初に開いたタブIDは23C12181-2DF3-4C03-9BD9-F7E0A9A5F0FAでした。このタブをtab closeで閉じ、直後の一覧から出力タブが消えたことを確認しました。

その後、同じreopen-output-01.txtを再度開くと、新しいタブID ACA34041-6D3E-4C07-90B1-BC03BBB8E215が返りました。開いたままのタブを読み続けたのではなく、閉じた後に別のタブとして読み直した一往復です。

製品読込とバイト列を別々に照合する

再度開いた出力へfile readを実行すると、UTF-8、LF、三つの代表文が返りました。さらに入力と出力を二つの方法で比較しました。

inspect diff --a reopen-input-01.txt --b reopen-output-01.txt
cmp -s reopen-input-01.txt reopen-output-01.txt

inspect diffはidentical: true、cmpは終了コード0でした。結果票は次のとおりです。

確認項目 入力 再度開いた出力 判定
SHA-256 86b87c...b38a2f 86b87c...b38a2f 一致
バイト数 156 156 一致
BOM なし なし 一致
改行 CR 0/LF 3 CR 0/LF 3 一致
代表文3件 固定三文 同じ三文 一致
製品差分/cmp identical: true 終了コード0 一致

入力と出力は別ファイルなので更新時刻は異なります。更新時刻の一致を同値条件には含めず、SHA-256、バイト数、BOM、改行、代表文、製品差分を照合しました。

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

一件の結果をほかの環境へ広げない

この試験で確認できたのは、rune Studio 1.4.0 build 23の正式開発版CLIで、固定した一ファイルを別名保存し、タブを閉じ、新しいタブで再度開いた結果だけです。結論は、この一件についての再読込同値確認済みです。

GUI上の文字を目視した試験ではなく、製品CLIのfile readが返した文字列を照合しています。App Store版、別の文字コード、別の改行、長い原稿、変換不能文字を含む原稿、アプリ終了時の保存には流用しません。それぞれ新しい試験IDと入力条件が必要です。

一往復の同値確認を選定材料にする

Macのテキストエディタを選ぶときは、候補ごとに同じ固定ファイルを別名保存し、閉じ、再度開き、バイト列と読込文字列を照合します。今回の固定一件では、rune Studioの正式開発版CLIがこの一往復を同値で完了しました。

ただし、この結果だけで「あらゆる原稿で文字化けしない」「最もおすすめ」とは決めません。次に別条件を調べるなら、この一件へ追記せず、別のファイル・符号化・改行を新しい試験として分けてください。