火星文 — "Martian text" — is the Chinese-internet habit of writing 我 as 莪 and 你 as 沵: ordinary words spelled in characters that look almost right. It belongs to the mid-2000s, and it has left behind a large number of online converters.

Feed 我你的是不 into several of them and most return 莪沵哋湜芣. The agreement looks like evidence of a standard.

It is evidence of a file.

The same table, three times over

One JavaScript snippet has been copied across much of the Chinese web-tool ecosystem. It stores three parallel strings of 3,753 characters each — a simplified column, a traditional column and a Martian column — and converts by looking up a character's position in the first string and reading the same position out of the third.

We fetched three copies from unrelated sites: an npm package, a developer-tools site and a note-taking utility. The first two hold 3,753 entries and the third holds 4,792.

All 3,753 rows are identical across all three. Not similar — identical, on every row, in both columns. The largest file is the smallest one with 1,039 rows appended to the end; its first 3,753 rows match the others exactly, in order.

This is evidence of copying, not convergence. Two people building substitution tables independently would never make 3,753 identical aesthetic choices in the same order.

One of the copies says so. A public repository carrying the table describes its own provenance as 「火星文来源为互联网在线网址匹配常用字结果的主观筛选」 — the Martian text was obtained by matching common characters against an online site and subjectively filtering the results. It is a scrape of an existing converter, offered as a converter.

A third of it does nothing

Of the 3,753 rows, 1,284 map a character to itself — 34.2% of the file. Those characters pass through the converter unchanged.

The table is padded to cover a character range rather than built from a set of substitutions. It looks comprehensive at 3,753 entries and performs 2,469.

Two of the identity rows are 能 and 怎 — which matters to us, because our own table carried exactly those two as no-ops until this week. We had read them as somebody's typo. They are inherited padding.

It cannot be undone

Among the rows that do substitute, 436 send two or more different characters to the same glyph. 芭, 吧, 巴, 把 and 爸 all become 妑. 奥 and 澳 both become 奧.

In those cases decoding is not just imperfect; it is impossible. A converter offering a "Martian → normal" direction has to guess at the source character, and nothing in the output marks the guess.

This is worth knowing before you use Martian text for anything you intend to read back.

The tools that are not copying disagree with everything

A few converters have their own tables, and they do not resemble the common one. One draws on several variants per character and picks one at random on each run, so the same input produces different output every time. It has no entry at all for 门 or 心. It maps 哋 to 地, where the common table maps 哋 to 的 — the same glyph, two different source characters.

Another returns five different renderings per request, mixing kana, bopomofo, Cyrillic, enclosed digits and radical decomposition — 白勺 for 的, ィ门 for 们.

These are not variant spellings of one system, but different ideas of what 火星文 is.

Two incompatible principles, and no arbiter

The common table substitutes by shape: 我→莪, 人→亾, 天→兲, 心→杺. Same rough outline, a radical added or shifted.

Encyclopedic and academic descriptions of 火星文 describe something else — substitution by sound and typo: 我→偶, 的→滴, 是→素, plus 注音文 (dropping 的 to its bopomofo initial ㄉ) and digit codes. Those descriptions do not list 莪 or 亾 at all.

Run the common table's output past the encyclopedia's own worked examples and it would not be recognised. Both are called 火星文, and neither is wrong, because there is no standard for either to be wrong against.

The underlying distinction — same shape, same sound, or same shape and sound — is a real feature of the writing system rather than an internet game, and our easily-confused characters reference groups the common sets that way.

Nobody publishes a standard, and one near-miss looks like one

Chinese Wikipedia states it plainly: 「火星文種類繁多,而且沒有統一標準」 — many varieties, no unified standard.

The education ministry's index of language and script standards contains no entry for it; a text search of that index returns zero occurrences. The only official action is prohibitive rather than descriptive — Shanghai's 2006 implementation measures bar it from official documents and media, which regulates use without defining form.

⚠️ One document is routinely mistaken for an official position: an essay arguing that 火星文 is not a coherent system, 「整个"火星文"的集合并不是一个内在有序的系统」. It sits on the ministry's own news portal, which makes it look normative, but it is a student essay republished there. The argument is sound and its location is misleading; it carries no more force than any other essay.

Our own table, since it would be dishonest to leave it out

Our Martian text converter uses a hand-built table, not the common one. Of the 137 characters both carry, ours agrees on 47 — 34%. On 14 of them the common table does nothing and ours substitutes.

Being an outlier is not a defect when there is no standard to conform to. Still, checking our table against the common one surfaced two genuine defects. It mapped 门 to 們, which is the traditional form of 们, not of 门 — so both characters produced the same glyph and neither could be decoded back. And one entry held corrupted bytes rather than a character, so 魔 silently never converted at all. Both are fixed, along with the two inherited no-ops.

The table is now one-to-one, which means our decode direction genuinely inverts our encode direction — something the common table cannot offer at any price, because of those 436 collisions.

What to take from this

If you are choosing a converter, ask two questions: does it return the same output twice for the same input, and does decoding recover what you typed? Both are answerable in under a minute, and they separate the tools more sharply than any claim about authenticity.

If you are building one, there is nothing to conform to and nothing to cite. Reproducing the common table buys consistency with most of the field, along with its padding, its collisions and its anonymous provenance. Choosing a principle and saying which one you chose is the more defensible option, and almost nobody does it.

Where this comes from, and what will date it

The 3,753-row table, the 1,284 identity mappings and the 436 collisions were computed directly from the fetched files rather than taken from anyone's description of them, and the three-way row-for-row comparison was run the same way. The provenance quotation is from the repository's own README.

Two limits. A fourth widely cited converter returned HTTP 403 to us and a fifth loads its table lazily in a way we could not extract, so neither is included in the comparison and neither is described here — the count of copies is a floor, not a total. And the claim that the copying runs wider than three sites is reported to us rather than measured by us; the three we name are the three we verified.

What will date this: nothing, most likely. The style is dead as a living register, the file has been stable for years, and there is no body that could issue a standard now even if one were wanted.