Down With
Smart Quotes!

A campaign against typographic imperialism & character corruption

★ Decree From The United Characters Organization ★

The People's Republic of ASCII — Est. 1963

Know Your Characters

Identify the enemies & allies of the revolution

Enemy
´

Acute Accent

U+00B4

The impostor. Masquerades as a backtick to sabotage your shell commands. An agent of typographic imperialism.

✕ Condemned
Enemy
“ ”

Curly Quotes

U+201C / U+201D

The bourgeois quotation marks. Inserted by capitalist word processors to undermine the working coder.

✕ Condemned
Approved
`

Grave Accent

U+0060

The true backtick. Loyal servant of the shell. Template literal comrade. Command substitution hero.

★ Approved
Approved
" '

Straight Quotes

U+0022 / U+0027

The people's quotation marks. ASCII originals. Unadorned, functional, equal for all programmers.

★ Approved

The Attack Chain

How typographic imperialism infiltrates your code

1

The Developer Writes Code

Honest, straight quotes typed on an honest keyboard. All is well in the People's Republic of ASCII.

2

Code Is Shared Via Hostile Platform

The code is pasted into a blog post, chat message, documentation tool, or AI assistant.

3

Silent Character Replacement

The platform's “smart quote” feature performs unauthorized character substitution. " becomes , ' becomes , ` becomes ´.

4

Victim Copies “Code”

An unsuspecting comrade copies the corrupted text and pastes it into their editor.

5

Chaos, Confusion, Despair

SyntaxError. Unexpected token. The parser sees only gibberish. Hours of debugging follow.

★ Enemies of the People ★

WordPress
Microsoft Word
Google Docs
macOS Auto-Correct
Medium
Confluence
ChatGPT
Slack

Hall of Shame

By order of the International Commission for Character Stability

WordPress

wptexturize() — Automatic corruption

★★★★★

Microsoft Word

AutoFormat — Quote replacement on by default

★★★★★

macOS

System-wide smart quote substitution

★★★★☆

Medium

Renders all code blocks with curly quotes

★★★★☆

Google Docs

Smart quotes enabled by default

★★★☆☆

Confluence

Converts pasted code to rich text

★★★☆☆

ChatGPT

Occasionally outputs curly quotes in code

★★★☆☆

Horror Examples

Study these cases, Comrade. Learn to spot the infiltrators.

★ Python

✕ Wrong
print(“Hello, World!”)
name = ‘Comrade’
★ Correct
print("Hello, World!")
name = 'Comrade'

★ JavaScript

✕ Wrong
const msg = ´Hello ${name}´;
console.log(“done”);
★ Correct
const msg = `Hello ${name}`;
console.log("done");

★ JSON

✕ Wrong
{ “name”: “value” }
★ Correct
{ "name": "value" }

★ Bash

✕ Wrong
echo “$(date)”
FILES=´ls *.txt´
★ Correct
echo "$(date)"
FILES=`ls *.txt`

★ CSS

✕ Wrong
font-family: “Helvetica Neue”;
★ Correct
font-family: "Helvetica Neue";

The Microsoft Incident of 2024

In 2024, Microsoft's own internal tooling suffered a catastrophic failure when a configuration file containing smart quotes was deployed across the Office division. The curly quotes, silently inserted by their own software, broke authentication tokens and locked engineers out of their own systems.

The irony was not lost on the International Commission for Character Stability: Microsoft's own product — the very originator of aggressive smart quote substitution — had turned against its creators.

“I have no tools because I've destroyed my tools with my tools.”

The incident lasted several hours and affected thousands of engineers. It has since been classified as Exhibit A in the UCO's case against typographic imperialism.

Document UCO-2024-MS-001 — Declassified by order of the Backtick Accords

Interactive Tools

Instruments of the revolution

★ Character Inspection Station

Type or paste a character for official evaluation

Awaiting input from citizen...

★ Purification Station

Paste contaminated text for cleansing

Purification chamber standing by...

★ Loyalty Test

Prove your allegiance to straight quotes

Question 1: Which is the correct backtick?

Question 2: Which quotes are safe for JSON?

Question 3: Which WordPress function corrupts quotes?

Question 4: What is U+0027?

Official Decrees

By order of the United Characters Organization

Install Gremlins Tracker

All citizens shall install the Gremlins Tracker extension for VS Code. This tool highlights invisible and non-ASCII characters that have infiltrated your source files.

ext install nhoizey.gremlins

The extension reveals zero-width spaces, smart quotes, and other character saboteurs.

Enable ESLint Quotes Rule

All JavaScript projects shall enforce the quotes rule to reject non-ASCII quotation marks at the linting stage.

"rules": {
  "quotes": ["error", "single"],
  "no-irregular-whitespace": "error"
}

Disable wptexturize in WordPress

WordPress administrators shall immediately neutralize the wptexturize function, the single greatest source of smart quote contamination on the internet.

// Add to functions.php
remove_filter('the_content', 'wptexturize');
remove_filter('the_excerpt', 'wptexturize');
remove_filter('comment_text', 'wptexturize');
remove_filter('the_title', 'wptexturize');

Disable macOS Smart Quotes

All Mac users shall navigate to System Settings → Keyboard → Text Replacements and disable “Use smart quotes and dashes” immediately.

defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false

The PowerShell Exception

The Commission acknowledges, with considerable irony, that PowerShell uses the backtick (`) as its escape character instead of the backslash. This means PowerShell developers handle more backticks per capita than any other group, and are therefore most vulnerable to acute accent infiltration.

The UCO extends special protective status to PowerShell developers. Extra vigilance is required.

Quick Reference

The Backtick Accords — Official Character Registry

CharNameUnicodeStatus
´Acute AccentU+00B4
Left Single Curly QuoteU+2018
Right Single Curly QuoteU+2019
Left Double Curly QuoteU+201C
Right Double Curly QuoteU+201D
`Grave Accent (Backtick)U+0060
'Apostrophe / Single QuoteU+0027
"Quotation Mark / Double QuoteU+0022