Plain text is still the universal interchange format — for configs, APIs, documents, and code. This guide covers the fundamentals: encodings, whitespace gotchas, case conventions, how diffs work, and when each common encoding scheme is actually appropriate.
What plain text means (and why it still matters)
Plain text is a sequence of characters with no formatting, images, or binary structure. It is the one format virtually every system can read, which is why configs, source code, API payloads, and interchange formats (CSV, JSON, YAML, Markdown) all build on it.
Character encodings: ASCII vs UTF-8 vs UTF-16
ASCII covers 128 characters; everything else needs an encoding. UTF-8 is the web's default — backward-compatible with ASCII, byte-efficient for Latin scripts, and capable of every Unicode character. UTF-16 uses two-byte units and is common in Windows/Java internals. Mojibake (garbled accents like 'café') happens when text is decoded with the wrong encoding — usually because a program assumed one encoding while the bytes came from another.
Whitespace and line-ending gotchas
Windows uses CRLF (\r\n), Unix/macOS use LF (\n). Mixing them causes cross-platform bugs in scripts and version control. Trailing whitespace and tabs-vs-spaces are invisible in editors but visible to parsers and diff tools. Our Whitespace Remover trims and collapses stray whitespace; the Line Counter helps audit files that misbehave.
Text case conventions
camelCase (likeThis) and PascalCase (LikeThis) are used in code identifiers; snake_case (like_this) in Python and configs; kebab-case (like-this) in URLs and file names; CONSTANT_CASE for environment variables; Title Case and Sentence case for human-facing copy. Our Text Case Converter handles all of them, including acronym-aware splitting for names like parseXMLFile.
What a diff actually computes
A text diff finds the longest common subsequence between two versions and highlights everything else as added or removed. Because it works on exact characters, formatting-only changes (re-wrapping a paragraph, reordering keys) create noisy diffs — which is why JSON/CSV/YAML diff tools compare structure instead. For raw text, our Diff Checker offers word-level granularity and ignore-case / ignore-whitespace options to cut that noise.
Readability metrics and their limits
Flesch-Kincaid and similar scores estimate reading grade level from sentence length and syllable counts. They are useful as rough feedback but ignore meaning, word frequency, and layout — a score alone never tells you whether text is actually clear. Treat them as a signal, not a verdict.
Regular expressions 101
A regex is a tiny pattern-matching language: literal characters, character classes ([a-z]), anchors (^, $, \b), quantifiers (*, +, ?), and groups. They are ideal for find-and-replace across a document, validating formats, and extracting substrings — our Find and Replace tool runs them with live match counts and capture-group support ($1).
Common encoding schemes and when to use them
Base64 encodes binary as ASCII (email attachments, JSON fields, data URLs) but is not encryption — it grows data ~33% and is trivially reversible. URL/percent encoding escapes unsafe characters in query strings. HTML entities (&, <) let you show reserved characters inside markup. The Text Encoder/Decoder covers all three with UTF-8-safe Base64 handling.