By dkl9, written 2025-195, revised 2025-195 (0 revisions)
Anything written on a computer is either plaintext or formatted. Plaintext is just characters and some spacing. Formatted text can include italics, bold, size changes, colour changes, proper links, and the like.
Most things written on computers are represented as one of ASCII or Unicode. ASCII describes English letters, digits, and common punctuation. Unicode extends it to handle characters of just about any language, and then some. Sith ASCII is part of Unicode, anything "in ASCII" is technically also "in Unicode".
Many programs that handle writing only accept plaintext. Others only accept formatted text, and others can use both. Many programs support varying large amounts of Unicode, but some only take and make ASCII. These two aspects can vary separately.
| Plaintext | Formatted | |
|---|---|---|
| ASCII | Most code, old texting | Old MS Word, my phone's browser |
| Unicode | Good email, modern texting | Current MS Word, most websites |
If something requires just "plaintext", you may still be able to write in languages not based on the Latin alphabet, or add emojis, but you must put all the meaning in the words and symbols themselves. If something requires just "ASCII" — or less technical descriptors like "English characters" — you may still be able to include formatting, but your only alphabet would be the Latin one, sans diacritics.
For a program to support formatted text, it takes more complexity in how it parses and writes its files, and in how it arranges and draws text. For a program to support Unicode, it takes a more complete font that offers more characters, and more complexity to handle a character encoding (like UTF-8) and text direction. Thus ASCII plaintext is the simplest way, and going beyond is hard to get right.