Uppercase conversion, plain and predictable
Uppercase conversion replaces every lowercase letter with its capital counterpart. In TextResult that means JavaScript's built-in String.prototype.toUpperCase(), which uses the Unicode case-folding tables shipped with your browser. So café becomes CAFÉ, straße becomes STRASSE, and Greek μέρα becomes ΜΈΡΑ. Anything that isn't a letter (digits, punctuation, emoji, whitespace) passes through unchanged.
There are no hidden steps. Diacritics stay intact. Already-uppercase letters stay uppercase. The output is always the same length in code units as the input, with the one Unicode-defined exception: German ß can expand to SS on modern engines, which is the correct uppercase mapping.
If you also need title case (Capitalise Each Word), sentence case (Capitalise the first letter of each sentence), or capitalize words (every word's first letter), pick the matching tool from the formatting hub. Uppercase is the simplest of the family; the others wrap their own segmentation rules around it.
How to use convert text to uppercase
- 1Paste or type your text into the input panel on the left.
- 2The uppercase result appears in the output panel on the right as you type.
- 3Click Copy in the output header to copy the result.
- 4Click Download to save the result as a plain-text file.
- 5Use Find (Ctrl+F) inside the input if you need to search or replace before transforming.
Keyboard shortcuts
Drive TextResult without touching the mouse.
| Shortcut | Action |
|---|---|
| Ctrl F | Open the find & replace panel inside the input Plus |
| Ctrl Z | Undo the last input change |
| Ctrl Shift Z | Redo |
| Ctrl Shift Enter | Toggle fullscreen focus on the editor Plus |
| Esc | Close find & replace, or exit fullscreen |
| Ctrl K | Open the command palette to jump to any tool Plus |
| Ctrl S | Save current workflow draft Plus |
| Ctrl P | Run a saved workflow Plus |
What this tool actually does
Unicode case mapping (not just A-Z)
Every letter is mapped via JavaScript's native toUpperCase, which follows the Unicode SpecialCasing table in your browser. Latin accented characters, Greek, Cyrillic, Armenian, and Coptic all uppercase correctly. Scripts without case (CJK, Arabic, Hebrew, emoji) pass through unchanged.
Whitespace, digits, and punctuation pass through
Spaces, tabs, line breaks, digits 0-9, and ASCII/Unicode punctuation are untouched. Line endings stay LF or CRLF as you pasted them. The status bar at the bottom of the input shows which line ending was detected.
Length-preserving in code units, with one exception
Output is the same UTF-16 code-unit length as input, except for the German sharp-s: ß uppercases to two code units SS. This is the Unicode-defined default. Flip the Keep ß toggle in the action bar to leave ß verbatim instead. Handy when you're uppercasing German text that should preserve the sharp-s.
Runs entirely in your browser
No upload, no server-side processing, no log of what you pasted. The transform fires on every keystroke via a single JavaScript call. No round-trip latency on any keystroke.
Default locale plus Turkish / Azerbaijani options
The default uses toUpperCase(): every letter follows the Unicode default mapping, regardless of your browser language. Switch the Locale dropdown to Turkish or Azerbaijani to opt into the dotted-I mapping (i -> İ) for those languages. Other locales fall through to the default behaviour.
Worked example
Notice straße uppercases to STRASSE (Unicode rule), ÉÉÏ keep their accents, the · middle-dot and #4821 pass through.
the quick brown fox jumps over the lazy dog. Café résumé naïve · straße ORDER #4821 - 2x widgets
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. CAFÉ RÉSUMÉ NAÏVE · STRASSE ORDER #4821 - 2X WIDGETS
Settings reference
| Behaviour | Effect on output |
|---|---|
| Lowercase letters | Mapped to their Unicode uppercase form. a -> A, é -> É, ñ -> Ñ. |
| Already-uppercase letters | Pass through unchanged. |
| Digits and punctuation | Pass through unchanged. |
German ß |
Uppercases to SS (two code units, output length grows by 1 per ß). Turn on Keep ß in the action bar to preserve ß verbatim. |
| Whitespace and line endings | Unchanged. LF stays LF, CRLF stays CRLF (visible in the input status bar). |
| Locale | Default uses Unicode case mapping. Switch the Locale dropdown to Turkish or Azerbaijani to apply the dotted-I rule (i -> İ) for those languages. |
| Scripts without case | CJK, Arabic, Hebrew, emoji, etc. pass through with no change. |
FAQ
Does it work on accented characters?
café becomes CAFÉ, naïve becomes NAÏVE, résumé becomes RÉSUMÉ. The accents are preserved on the uppercase form.Why does ß become SS instead of staying as ß?
ß verbatim, turn on the Keep ß toggle in the action bar. The tool then protects every ß through the conversion. There is also a capital ẞ codepoint (U+1E9E) in newer Unicode versions; if you want that specifically, run the result through find/replace afterwards.