Choose a Mac Text Editor That Prevents Mojibake: A Reopen Test

Three encoding paths meet a warning gate before safe artifacts complete a reopen verification loop

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.

Rune Studio editor with UTF-8 and LF shown in the status area
The status area shows UTF-8 and LF for the open manuscript. This is the selected value; whether the saved bytes match is checked separately.

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.