Text and Tamil tools

Case converter

Convert Unicode text to upper/lowercase, capitalize word or sentence starts, or swap case with a chosen locale. Private local processing and TXT downloads.

Choose a case

Make all cased letters uppercase. Some characters expand, such as ß → SS.

Write, paste or import TXT. Your source stays unchanged until you choose Use result as input. Up to 100,000 UTF-16 units.

Write or paste text to begin. Live preview is on.

Import a local TXT file

Choose or drop one UTF-8 .txt file up to 400 KB. Undo restores your previous text.

Convert case locally

  1. Paste text, import a local UTF-8 TXT file or use the multilingual example.
  2. Select an operation and a language for native casing rules.
  3. Live preview updates after a short pause. Review the result, then copy or download it. The input stays unchanged.

Operations and language rules

Uppercase and lowercase apply the browser’s locale-aware whole-string mapping, including context-sensitive rules. Turkish i/ı and I/İ differ from English; German ß can expand to SS; Greek sigma depends on context. Scripts without case, such as Tamil, remain unchanged except for cased characters from other scripts in the same text. These transformations can change character/storage length and are not generally reversible.

Capitalize word starts uses native word-like boundaries: uppercase its first cased grapheme, lowercasing the rest only when the checkbox is on. Capitalize sentence starts uses native sentence boundaries: apply the same choice to each sentence segment. Quotes, punctuation, whitespace and uncased prefixes remain. These are explicit formatting operations, not strict Unicode titlecase or editorial headline rules. Turn off Lowercase remaining letters to retain capitals after each first character. This still changes initial characters and cannot automatically protect proper names; abbreviations and mixed-language boundaries can vary. Initial ß can become SS, not a specialized titlecase form.

Swap case maps each Unicode code point independently: lowercase letters become uppercase, and other cased forms become lowercase. This mode does not apply whole-word contextual rules or guarantee round-trip recovery. Combining signs and emoji remain data; the tool does not intentionally normalize Unicode, translate or alter spacing. Native locale/context mappings can themselves add or remove combining marks.

ECMA-402 casing specification. Choose the language matching your intended case rules and inspect the output; browser Unicode/locale data can vary.

Import and undo

Local TXT import validates UTF-8, removes an initial BOM and converts CRLF/CR line endings to LF. Invalid files preserve the current draft and result; edits discard unfinished reads. Pastes of at least 10,000 UTF-16 units use one validated replacement. Import, large paste, example, Clear and Use result as input provide one undo step. Typing or changing casing settings discards that replacement undo. Clear keeps your settings. Output larger than the input limit can be copied or downloaded but cannot be reused as input.

Privacy and limits

Local worker only; no uploads, saved drafts, external service or executable HTML. Input is valid Unicode up to 100,000 UTF-16 units; expanded output is limited to 300,000 units. Live preview waits for 450 ms without typing and pauses during input-method composition. Switch it off for manual conversion. A ten-second timeout bounds processing. Cancel terminates conversion, Clear removes text/result, and editing input or settings clears stale results. Word/sentence capitalization needs Intl.Segmenter; if unavailable, choose native upper/lowercase or a current browser. Unpaired surrogates reject to avoid lossy UTF-8 export.

Original TXT preserves the textarea’s input value; converted TXT contains only the output, with no heading or added byte-order mark. Browser textareas normalize line endings to LF. Clipboard copying is optional and may be blocked; download or select the result instead. Downloaded files and clipboard content remain under your control. For detailed size limits use the character counter.