Skip to main content
← Back to Home

Text

9 tools

Count, diff, format, regex replace, Base64, URL encode, transform, line tools and more

Character counting, text diff, JSON formatting, text editing, regex replace, Base64 encode/decode, URL encoding, text transformation (full/half-width, case conversion, line endings), and line tools (remove duplicates, sort, add prefix/suffix) — 9 tools running entirely in your browser.

Use Cases

  • —Count characters in a manuscript with strict length limits
  • —Quickly diff two texts or config files
  • —Reformat and validate malformed JSON into readable output
  • —Unify full/half-width characters or convert between camelCase, snake_case and more
  • —Remove duplicate lines, sort, or add prefixes and suffixes in bulk
  • —Encode or decode URL percent-encoding and Base64 strings instantly

Who It's For

Writers, engineers, data professionals, and anyone who works with text daily

Privacy

Text you enter is processed only in the browser and never sent externally — safe for confidential content.

Text chores are the kind of thing you want to finish in ten seconds. Yet most sites you find by searching "JSON formatter" or "character counter" send what you type to a server for processing. API responses, config files, unpublished drafts, a list with customer names — the text you actually need to format is usually the text you would rather not paste into somebody else's box.

OFFiler's text tools run entirely in your browser. What you type stays in the page and no request is made. Below: what each of the nine tools is for, how they work, what sizes they handle, and the questions people ask most.

Choosing the Right Text Tool

Counting and comparing

Character Counter shows characters, characters excluding spaces, words, lines, and paragraphs at once. For languages that do not separate words with spaces, such as Japanese, the character count is the meaningful figure; for English it counts whitespace-separated tokens as words. Useful for submissions with a strict limit or for drafting a post.

To see what changed between two texts, use Text Diff. It computes a line-level difference using the longest common subsequence algorithm and colour-codes added and removed lines — good for comparing two versions of a config file, checking a contract before and after revision, or lining up two snippets of code.

Formatting and rewriting

JSON Formatter expands JSON that has been squashed onto one line into properly indented output, and can minify it back the other way. When the syntax is broken it reports the error together with the line and column where it occurred, so you can find the problem immediately — handy for reading an API response or hunting a typo in a config file.

For rule-based bulk edits, use Regex Replace. It supports the g, i, m, and s flags, highlights matches as you type, shows the match count, and previews the replacement result so you can confirm nothing unintended was caught before you use it.

Text Transform handles inconsistent notation: upper and lower case, title case, conversion to camelCase, PascalCase, snake_case, kebab-case, and CONSTANT_CASE, full-width to half-width and back, unifying line endings (CRLF / LF / CR), and trimming or collapsing whitespace.

Working with lines, and somewhere to write

For list-shaped data, Line Tools does the heavy lifting: remove duplicates, sort ascending, descending, or randomly, drop empty lines, trim each line, add a prefix or suffix to every line, and add or strip line numbers. Deduplicating a list of email addresses, or wrapping a pasted list in quotes to make an array, becomes a couple of clicks.

Text Editor is a plain scratch space for a quick draft or somewhere to park pasted text. Drop a file in to open it, edit, and save the result back out as a text file, with a live character count alongside.

Encoding and decoding

Base64 Encode / Decode handles both text and binary files. It supports URL-safe output (+ becomes -, / becomes _) and can generate a Data URL so an image can be embedded directly in HTML or CSS. When a decoded result turns out to be an image, it is previewed on the spot so you can confirm the decode worked.

URL Encode / Decode converts percent-encoding in both directions for URLs containing non-Latin characters or symbols. It can also break a query string apart into a key-value list, which makes it easy to see what is buried in a long URL full of tracking parameters.

Worth stating plainly: Base64 is not encryption. It is an encoding anybody can reverse, so it cannot be used to keep anything secret.

How Browser-Only Text Processing Works

Your input stays inside the page

Everything here is implemented in JavaScript running in your browser. Diffing, regular expressions, JSON parsing — all of it executes on your device. There is no code path that transmits what you typed, and nothing is logged on a server.

If you want to check, open the Network tab in your developer tools and type or convert something. You will not see a request carrying your input. The results disappear as soon as you close the page.

That is the point of doing it this way: it lets you work on the material you cannot paste into an external service — config containing API keys, an internal customer list, an unpublished draft, a fragment of a CSV with personal data in it.

Chaining tools together

The text tools hand their output straight to one another. You can deduplicate a pasted list in Line Tools, unify its casing in Text Transform, and finish it in the editor without copying and pasting between steps.

Text files are accepted up to 10 MB each. Highlighting and diff rendering can get heavy on extremely long documents, so working on the section you actually need keeps things responsive.

Formats and Limits

Input
Paste directly or load a text file. The Base64 tool also accepts binary files such as images
Output
Copy to clipboard, save as a text file, or a Data URL from the Base64 tool
File size
Up to 10 MB per text file
Encoding and line endings
UTF-8 throughout. CRLF, LF, and CR are detected, and Text Transform can convert between them
Browser requirements
Current Chrome, Edge, Safari, and Firefox. Nothing special is required, and they work on phones too
Cost and sign-up
Free. No account, no sign-in, and no usage cap

Text Tools FAQ

Is the text I type sent to a server?

No. Everything is processed by JavaScript in your browser and your input never leaves the page. Open the Network tab in your developer tools while you work and you can confirm that no request carries it anywhere.

Is it safe to paste API keys or personal data?

Processing stays on your device and nothing is transmitted, which makes it far safer than a typical online tool. On a shared computer, still take the usual precautions: close the page when you are done and be mindful of what is left on your clipboard.

Does the counter handle Japanese correctly?

Yes for characters — they are counted as typed. The word count works by splitting on whitespace, so it is not meaningful for languages that do not use spaces between words. For Japanese text, use the character count (or the count excluding spaces) instead.

My JSON is invalid and I cannot see why.

The formatter reports the parse error along with the line and column where it happened. The usual culprits are a trailing comma, unquoted keys, single quotes instead of double, or comments — JSON does not allow comments at all.

At what granularity does the diff work?

Line by line. It matches identical lines using the longest common subsequence algorithm and colour-codes what was added or removed. When only part of a line changed, that line appears as a removed/added pair rather than a character-level highlight.

Does Base64 hide the contents of my data?

No. Base64 is an encoding, not encryption, and anyone can reverse it. It exists to carry binary data as text, and offers no confidentiality. If you need the contents protected, use real encryption such as a password-protected AES-256 ZIP.

My regular expression is not matching what I expect.

Matches are highlighted live with a count, so start by looking at what it is actually hitting. Enable g to replace every occurrence, i to ignore case, m to make ^ and $ apply per line, and s to let . match newlines as well.

Can it handle large files?

Text files load up to 10 MB. Highlighting and diffing get slower as the document grows, so for logs running to tens of thousands of lines, cut out the section you care about first.

Do they work offline?

Yes. After the first visit the app is cached as a PWA. Text tools need no external resources at all, so nothing is missing when you are offline.

Text Terms, Briefly

Line endings (CRLF / LF / CR)
The control characters that end a line. Windows generally uses CRLF, macOS and Linux use LF. A mix of both is a common reason diffs look wrong.
Full-width / half-width
Two widths of the same character used in Japanese text environments. A full-width "A" and a half-width "A" are different characters, so notation often needs unifying.
LCS (longest common subsequence)
An algorithm that finds the longest sequence common to two inputs. It is how the diff identifies which lines did not change.
Regex flags
Modifiers that change how a pattern behaves. Supported here: g (all matches), i (ignore case), m (multiline), s (dot matches newlines).
Base64 / Data URL
An encoding that represents binary data as text, and the URL-shaped notation used to embed it. Neither is encryption — both are trivially reversible.
Percent-encoding
The scheme that replaces characters not allowed in a URL with sequences such as %E3%81%. URL encoding and decoding move between the two forms.

Related Links