How do I disable smart replacements? (smart quotes, double-dash -> emdash, etc)

Question in subject.

I’m trying to write programming documentation, and in multiple browsers I’m unable to type programming literals in a literal way. Even in code blocks, I’m seeing two dashes being automatically replaced with emdashes (a syntax error, if anyone copy-pastes to the shell), and single quotes being replaced with unicode (closing) smart quotes.

I checked the OS settings, and substitutions are off; I checked the browser’s settings, and substitutions are off there, as well.

+1

Automated curly quotes were breaking some things for me last week, and the automated em dash was breaking things the week before that. I had to copy in the correct characters from a text editor, one instance at a time.