{"version":"2.1.239","anchor":"wider-unicode-normalisation-of-untrusted-text","canonical_anchor":"wider-unicode-normalisation-of-untrusted-text","heading":"Wider Unicode normalisation of untrusted text","tier":"notice","area":"Prompt Safety","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.239\/e\/wider-unicode-normalisation-of-untrusted-text","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.239","markdown":"### Wider Unicode normalisation of untrusted text\n\nUntrusted text is normalised harder, closing lookalike characters used to fake instruction markers.\n\n**What**\n\nText coming from outside Claude Code is normalised more aggressively before it is inspected, closing off characters that could be used to disguise instruction markers. Combining accents are stripped, six more angle-bracket lookalikes are folded, and dash lookalikes and line\/paragraph separators are now recognised as their plain equivalents.\n\n**Details**\n\n- Combining marks are removed by decomposing the text and deleting all mark characters.\n- New homoglyphs mapped: `\\u226E`, `\\u226F`, `\\u227A`, `\\u227B`, `\\u22D6`, `\\u22D7`.\n- New character classes cover dash lookalikes such as the minus sign and super\/subscript minus, and the control class now includes `\\u2028` and `\\u2029`.\n\n**Evidence**\n\n`e.normalize(\"NFKD\").replace(\/\\p{M}+\/gu, \"\")`\n\n- Area: Prompt Safety\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 3\/5"}