Product1 distinct publisher3 min readPublished
The Tags block was drafted for language codes, dropped, revived for flag emoji, then dropped again, and it still travels through every text field you run. That is why the answer is normalizing input rather than scanning it.
The Product Desk · Product desk

Compiled by The Product DeskSomething wrong?How this is made
The moment to picture is on the review side. A flagged message gets opened, an agent reads a flat paragraph of sales copy, finds nothing wrong with it, and clears the queue. What the agent read and what the model behind the queue read were not the same string, because those tag characters render as nothing in most interfaces and travel as text regardless [6].
Here is what users actually do with a text box: they paste. Resumes, ticket bodies, product blurbs, notes lifted out of a CRM, all of it bytes from somewhere else. Here is what teams tell themselves users do: type characters that match what renders on screen. The moment a model or a rules engine sits behind that box, the assumption stops being cosmetic and becomes a control you do not actually have.
The surface is at least countable. The Unicode standard defines code points for roughly 150,000 characters and has capacity for more than a million [2], and the Tags block accounts for 128 of those [3]. Work the division and it comes to about 0.09 percent of what is currently defined [10]. Deciding whether a sentence contains a malicious instruction is a semantics problem; deciding whether a code point falls inside a fixed range of 128 is a table lookup.
The false-positive budget is small as well. A commenter in the Ars thread notes that the block's surviving sanctioned use is as a flag-emoji modifier, where the sequence gbwls yields the Wales flag, and calls that use rare and not well supported [7]. Another reader wants the choice kept local, writing "Give me the option to turn it on and I will" [9]. What the material does not do is quantify how much spam is using the technique, name the filters it is getting past, or show any provider shipping that option [13].
Ingest is also the only place the fix holds. A reader in the same thread sketches the escalation: make the entire payload tag characters, wrap it in HTML and JavaScript, and let a few lines of script shift everything back into the ASCII range once the message is open [12]. A keyword scanner reading the delivered bytes finds nothing to match. A normalizer that drops the block at the door removes the payload before any script has something to rebuild.
The useful sort is two columns wide: the places where a human reads a rendered string, and the places where a machine acts on it. Where one input lands in both columns, the display path and the decision path have to agree on the bytes, which means normalizing at the boundary and logging what got removed, so that on Friday somebody can tell a customer which invisible characters bounced their message.
Ranked by verification strength, evidence, and original report placement.
An Ars commenter writes that the characters are officially deprecated as a language specifier and have been repurposed as a modifier for flag emojis, giving "gbwls" plus a flag as producing the Wales flag, and adds that this is "pretty rare though and not well supported".
An Ars commenter argues that if the tag usage never caught on there is little reason for these characters to be in legitimate emails, and asks whether a filter that catches all of them would be too hamfisted an approach.
Another Ars commenter responds: "Give me the option to turn it on and I will. Anyone sending me a legit email with those characters in it can just deal really."
An Ars commenter suggests that instead of putting invisible characters in the middle of a word, the entire payload could be tag characters embedded in HTML plus JavaScript, with a small script shifting every character back into the ASCII range; a reply says that an email client which runs JavaScript in incoming messages should be replaced.
The Unicode standard defines binary code points for roughly 150,000 characters found in languages around the world, and the standard has the capacity to define more than 1 million characters.
Nestled in the Unicode repertoire is a block of 128 characters that parallel ASCII characters, commonly known as the Tags block; all code points in the block were invisible by design.
Distinct publishers with included, body-backed reporting in this cluster.
1 article · September 5, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
security
Phishing crews adopt the AI red team's invisible Unicode trick to break keyword filters3 distinct publishers
leadership
Expressiveness Is A Cost: The Tradeoff Behind Every "Make It More Flexible" Request1 distinct publisher
build
Invisible email spans reach the summarizer because text extraction never checks visibility1 distinct publisher
build
Tool calls make model output executable, so the allowlist is a pre-production review item1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Encoding history checks out, spam claim bare
The durable parts here are verifiable against the standard itself: the 128-character Tags block, its two abandoned purposes, and Goodside's finding that tag characters survive into model input while rendering as nothing. The part the headline rests on, spammers using the technique, arrives with no sample at all, and a reader has to supply the Unicode 9.0 and Emoji 5.0 text that Ars Technica's account of a second retirement leaves out.
Qualitative only
Spam use is asserted and never sized. There is no volume, no filter named as having been slipped past, and no provider shipping a control for the range; the closest thing to a deployed mitigation anyone cites is Gmail's handling of JavaScript in mail, which answers a hypothetical a reader raised rather than the technique itself.
Headline outruns its sample
The overstatement is modest and runs one way. "Embraced by spammers" implies a trend nobody in this reporting sizes, and calling the block deprecated twice overstates its abandonment, as the reader with the release notes points out. Against that, the finding that matters, code points models read and interfaces refuse to draw, is stated almost in passing.
Low commercial stake
The commercial voices in this incentive picture are thin. Scale AI appears only as Goodside's employer, the mitigation ideas come from unpaid commenters, and the sole commercial interest in view is Ars Technica's in a busy thread. The absent voices are the mail providers and model vendors who would have to normalise the range, none of whom is quoted.
One newsroom, self-corrected
Everything traces to a single Ars Technica page, with the corroboration coming from inside it when a reader holding the Unicode release notes amends Ars Technica's own framing. The encoding claims are the kind that hold up against the specification; the spam claim stands alone, resting on this single account only.