Favorite places of your favorite city
Home
Add to preferred sources on Google

Text Diff Checker

Compare two plain-text drafts and inspect their line-by-line differences. Line endings are normalized, while spaces, tabs, case and the final newline remain significant. This is an editorial comparison, not a judgment about meaning or correctness.

Compare two drafts line by line. Line endings are normalized; spaces, case and the final newline remain significant.

Compare text

Each side: up to 100,000 UTF-16 units, 2,000 line records and 10,000 units per line.

Comparison

Not compared

Drafts and results are processed locally in a browser worker; the tool does not upload or save them. Ordinary site requests still occur.

Compare two drafts

  1. Paste or type the earlier version into Original text and the later version into Updated text. Both fields may be empty. Use example fills two short drafts and waits for you to select Compare.
  2. Select Compare to start a local browser worker. Keep each side within 100000 UTF-16 units, 2000 line records and 10000 content units per line. Editing, Clear or Cancel stops the current comparison; your drafts are not silently shortened.
  3. Read the match or difference status, added/removed/unchanged counts and numbered rows. Show whitespace and controls reveals otherwise hard-to-see changes. Previous and Next expose every result row; no file is uploaded or merged.

Understand exactly what is compared

CRLF and standalone CR line endings become LF before comparison. Browser text fields already normalize line endings, so a match does not establish byte-identical source files or recover the clipboard's original line-ending convention.

A line record includes its final LF when one exists. The text a and the text a followed by LF each contain one record, but those records differ. Empty text has no records; one LF represents one blank record.

Everything else remains significant, including trailing spaces, tabs, nonbreaking spaces, letter case and different Unicode combining sequences. Similar-looking text may differ. A wrapped line on screen is not another record, and the input limit counts UTF-16 units rather than visible characters.

A completed comparison finds a shortest whole-line insertion/deletion script. Repeated lines can admit several equally short alignments. Removed and added rows do not uniquely identify a rewritten or moved passage, and no word-level, semantic or correctness conclusion follows.

Examples of lines and endings

Compare red then blue with red then green, with both drafts ending in LF. Red is unchanged; blue is removed and green is added. Each draft has two records, with one added, one removed and one unchanged line in the comparison.

Compare a without a final newline against a followed by LF. The result has one removed and one added record, not an unchanged line plus an invented empty line. The final-LF flags read No and Yes.

Compare empty text against one LF. The result adds one blank line; the original final-LF flag is Not applicable. By contrast, two empty drafts match with zero added, removed and unchanged records after you explicitly select Compare.

Limits and incomplete comparisons

Input limits are inclusive and are checked without truncation. Highly different drafts can still reach an internal edit or time budget within those limits. Comparison limit reached means no complete result exists; it must not be read as a match.

An unavailable worker, cancellation or failure preserves the drafts but produces no comparison result. Try again explicitly or use smaller drafts. No fallback blocks the page by running the diff on its main thread, and background browser scheduling prevents a guaranteed completion deadline.

This tool accepts pasted plain text, not PDF, Word or other document files. It does not ignore whitespace or case, validate facts or code, approve safety-critical instructions, apply a patch, merge changes or create a saved/shared report.

Local text processing

The comparison runs in a dedicated browser worker. The tool does not upload drafts or results, put them in URLs, include them in logs or analytics, or save them in browser storage. Ordinary site and asset requests still occur. User text is rendered as text, not executed as HTML or code.

Text comparison questions

No. It means the current text-field values match after CRLF and CR are normalized to LF. The tool neither reads files nor proves byte identity, authorship or semantic correctness.

The ending belongs to its line record. Changing a to a followed by LF replaces one record with another. An extra blank line is different: a followed by two LFs has two records.

Not in this version. Spaces, tabs, case and final-newline presence remain significant. The whitespace display toggle changes annotations only; it never changes comparison rules or counts.

Yes, within the same limits and exact whole-line rules. No Latin-word tokenizer is used. Different Unicode sequences can still produce different records even when their displayed glyphs look alike.

A difficult comparison may exceed the separate edit/time budget, or the worker may be unavailable or cancelled. A no-result state is explicit and is never a partial result or a match.

The tool processes the drafts locally and does not upload or persist them. Ordinary page requests are separate from text processing. There is no share link, stored comparison, automatic merge or file-processing service in this version.

Sources

References for the comparison and browser behavior.

Reviewed 5 November 2026; this is not professional, security or safety approval.

JSON to YAML

Convert JSON to YAML locally while preserving number text and quoted strings; copy or download the complete result.

Open tool — JSON to YAML

YAML to JSON

Convert one YAML document locally to JSON with exact number text and bounded aliases, then copy or download the complete result.

Open tool — YAML to JSON

HTML to Markdown

Convert pasted or local HTML into Markdown, review conversion notes, and copy or download the result.

Open tool — HTML to Markdown

JavaScript Regex Tester

Test a JavaScript pattern locally and inspect matches, captures, and UTF-16 positions.

Open tool — JavaScript Regex Tester

Markdown to HTML

Convert a Markdown draft to an HTML fragment, inspect the source and inert preview, then copy or download it.

Open tool — Markdown to HTML

Text Sorter

Sort lines alphabetically by a chosen language or by Unicode code point, keeping duplicates, blank rows and complete line contents.

Open tool — Text Sorter

Remove Duplicate Lines

Keep the first copy of each exact text line, preserving order, significant spaces and blank rows, then copy or download the result.

Open tool — Remove Duplicate Lines

Case Converter

Convert text to uppercase, lowercase, capitalized words or sentence case with explicit letter rules.

Open tool — Case Converter

HTML Entity Encoder/Decoder

Encode or decode literal HTML references with explicit context, Unicode options and LF output, without parsing or rendering markup.

Open tool — HTML Entity Encoder/Decoder

Markdown Table Generator

Edit a small literal-text table, set alignment and copy GFM Markdown or import tab-separated text.

Open tool — Markdown Table Generator

Query String Parser & Builder

Edit ordered URL parameters, retain repeated names and copy a normalized query or HTTP(S) URL.

Open tool — Query String Parser & Builder

URL Encoder & Decoder

Convert a UTF-8 URL component or form value with explicit space and plus rules, then copy or download the result.

Open tool — URL Encoder & Decoder

Base64 Encoder & Decoder

Encode UTF-8 text as standard or URL-safe Base64, or decode either format with clear errors and complete text output.

Open tool — Base64 Encoder & Decoder

XML Formatter

Check namespace-aware XML 1.0, format or compact locally, and copy or download UTF-8 output.

Open tool — XML Formatter

JSON Formatter & Validator

Check JSON syntax, format or minify locally, and copy or download output while preserving original data tokens.

Open tool — JSON Formatter & Validator

SMS Character Counter & Segment Calculator

See how your message is encoded, where its segments end and what it may cost. Your text stays in your browser.

Open tool — SMS Character Counter & Segment Calculator

Social Media Character Counter

Check platform-specific limits and split posts without losing text.

Open tool — Social Media Character Counter

Character Counter

Count characters, words, sentences and paragraphs. Check word density, reading time and UTF-8 size, all in your browser.

Open tool — Character Counter

Text Size Calculator

Compare text encodings and payload sizes in your browser.

Open tool — Text Size Calculator

PDF Text Cleaner

Fix line breaks and spacing in text copied from a PDF. Preserve your original and review ambiguous hyphens before copying the cleaned text.

Open tool — PDF Text Cleaner

Fancy Text Converter

Convert supported fancy Unicode letters to normal text locally. Keep case, accents, emoji and your original text.

Open tool — Fancy Text Converter

Garbled Text Fixer

Fix garbled text and repair broken accents with a browser-based mojibake fixer. Review each possible UTF-8 reversal before applying it.

Open tool — Garbled Text Fixer

Gmail Clipping Checker

Measure email HTML bytes in UTF-8, compare them with an advisory 102,000-byte Gmail reference, and inspect size contributors locally.

Open tool — Gmail Clipping Checker
View all tools in this category