
To judge whether a Mac text editor preserves text without mojibake, take one fixed file through a separate save, close it, reopen it, and compare the result with the pre-save record. In the official rune Studio 1.4.0 build 23 development CLI, one fixed UTF-8 without BOM and LF file completed that cycle with matching bytes and matching product-read text.
This result covers one 156-byte file in the development CLI only. It does not prove the GUI display, the App Store build, another manuscript, another encoding or line ending, application-quit behavior, or a ranking between editors. This article uses the bounded cycle as one selection check and nothing broader.
Fix one input condition
The test workspace contained one reopen-input-01.txt with these three fixed passages:
冒頭代表文:朝の原稿を確認します。
中央代表文:同じ文字列を保ちます。
末尾代表文:再読込後に照合します。
The official development CLI created it with file write, explicitly setting UTF-8 and LF, and read it with file read. The starting record was:
| Field | Starting value |
|---|---|
| File | reopen-input-01.txt |
| Encoding and line ending | UTF-8 without BOM / LF |
| SHA-256 | 86b87c3d426a4fc4c1a2511be74be526cd128b9b23b3ae44d9f5fda175b38a2f |
| Byte count | 156 |
| Line-ending bytes | 0 CR / 3 LF |
| Product read | UTF-8, LF, 54 characters, 4 lines |
The first three bytes were e5 86 92, not the UTF-8 BOM ef bb bf. This test preserves one condition; it does not convert the input to another encoding.
Save unchanged content under a separate name
After opening the input tab, file write read the input content and wrote reopen-output-01.txt with the same UTF-8 and LF settings. Input and output remained separate paths, and the write completed at 156 bytes.
This command is an official CLI route through the product’s read and write processing. Both the dry run and execution returned exit code 0.
Reopen in a new tab after closing
The first output tab had ID 23C12181-2DF3-4C03-9BD9-F7E0A9A5F0FA. tab close closed that tab, and the following tab list no longer contained the output.
Opening the same reopen-output-01.txt again returned a new tab ID, ACA34041-6D3E-4C07-90B1-BC03BBB8E215. The test therefore read a newly opened tab after closing the first one rather than continuing to inspect the original open tab.
Compare product-read text and bytes separately
After the new tab opened, file read returned UTF-8, LF, and the same three passages. The input and output were also compared in two ways:
inspect diff --a reopen-input-01.txt --b reopen-output-01.txt
cmp -s reopen-input-01.txt reopen-output-01.txt
inspect diff returned identical: true, and cmp returned exit code 0.
| Check | Input | Reopened output | Result |
|---|---|---|---|
| SHA-256 | 86b87c...b38a2f |
86b87c...b38a2f |
match |
| Byte count | 156 | 156 | match |
| BOM | absent | absent | match |
| Line endings | 0 CR / 3 LF | 0 CR / 3 LF | match |
| Three passages | fixed passages | same passages | match |
Product diff / cmp |
identical: true |
exit code 0 | match |
The files have different modification times because the output was written as a separate file. Modification-time equality was not a content-equality condition.

Keep the result inside its tested boundary
The measured conclusion is reopen equality confirmed for this one file in the official rune Studio 1.4.0 build 23 development CLI. It covers a separate save, a closed tab, a new tab, a product read, and byte comparison.
It was not a visual inspection of the GUI. Do not extend it to the App Store build, another encoding, another line ending, a long manuscript, an unconvertible-character case, or application-quit saving. Each needs a separate test ID and fixed input.
Use one reopen cycle as a selection check
When evaluating a Mac text editor, give each candidate the same fixed file, save it under a separate name, close it, reopen it, and compare both bytes and readable text. In this bounded test, the official rune Studio development CLI completed the cycle with an equal result.
That does not mean every manuscript is safe or that one editor is automatically the best. Add a new test for every additional file, encoding, or line-ending condition instead of expanding this one result.


