Diff Checker — Find Every Change Between Two Files With Character-Level Precision

Identifying what changed between two versions of a document, configuration file, code snippet, or dataset is one of the most recurring tasks in software development, content editing, legal review, and data management — and doing it accurately by eye is unreliable for anything beyond trivial differences. A configuration file where one value changed in a 200-line document requires reading every line of both versions carefully to find the single changed value, and even then, a one-character difference in a value that looks identical at a glance — a tab versus spaces, a trailing space, a digit transposition — may be missed by visual inspection. The diff checker applies the Myers diff algorithm (the same algorithm used by Git) to compute the minimal edit sequence between two texts, displaying additions, deletions, and unchanged context in a color-coded side-by-side or unified view that makes every change immediately visible without manual comparison.

Semantic diff versus character diff produces different output that is useful in different situations. Character-level diff highlights every changed character — useful when exact byte-level differences matter, such as comparing configuration values, serialized data, or any content where whitespace differences have functional significance. Word-level diff groups changes by word boundary — useful for comparing prose documents where rephrased sentences should show as word substitutions rather than character substitutions that obscure the semantic change. Line-level diff groups changes by line boundary — the default for code comparison where each line is a logical unit. The diff checker provides all three granularities with a toggle, allowing you to inspect the same difference through multiple lenses depending on what level of detail is actionable for your review.

Whitespace and encoding differences are the invisible source of false differences that make diff outputs noisy and misleading. A document opened in a Windows editor and saved adds carriage returns ( ) before each newline ( ), producing a file where every single line appears to have changed from the perspective of a diff tool that does not normalize line endings. A file saved with trailing spaces on each line produces identical cosmetic appearance but different byte content from the same file without trailing spaces. A file converted between UTF-8, UTF-8 BOM, and UTF-16 encodings looks identical in any text editor but produces a completely different diff output. The diff checker applies configurable normalization — strip trailing whitespace, normalize line endings, ignore encoding differences — so the reported differences are semantically meaningful changes rather than formatting artifacts that obscure the actual content changes.

LCS Diff Checker & Text Comparison

Compare source code, API contracts, JSON structures, and legal documents with mathematical Longest Common Subsequence (LCS) accuracy and word-level intra-line highlights.

Dynamic Programming LCS Engine Intra-Line Word Highlighting 100% Client-Side Privacy
Test Presets:
Original Text (Version A)8 lines
Modified Text (Version B)6 lines
+4 Added-6 Removed~1 Modified=1 Unchanged
Version A (Original)
Version B (Modified)
1- function calculateTotal(items, taxRate) {
2- let subtotal = 0;
3- for (let i = 0; i < items.length; i++) {
4- subtotal += items[i].price;
5- }
6- const tax = subtotal * taxRate;
7 return subtotal + tax;
1function calculateTotal(items, taxRate, discount = 0) {
2+ const subtotal = items.reduce((acc, item) => acc + item.price, 0);
3+ const discountedSubtotal = Math.max(0, subtotal - discount);
4+ const tax = discountedSubtotal * taxRate;
5+ return discountedSubtotal + tax;
8}
6}

Frequently Asked Questions

Related Developer & Data Utilities

316+

Tools

50K+

Active Users

1M+

Files Processed

99.9%

Uptime