Uppercase Text Converter

Instantly convert text to ALL CAPS using JavaScript's locale-independent uppercase conversion, useful for constants, headers, and quick formatting checks. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-18

Overview

Introduction

Formatting a constant name, generating a shouty header, or just checking what text looks like fully capitalized - uppercase conversion is one of the most common small text transforms, and one that's surprisingly easy to get wrong for non-ASCII text.

It shows up constantly in code: environment variable names like API_KEY or NODE_ENV, SQL keywords under some style guides, UI headings styled entirely in caps. Doing the conversion by hand risks missing accented characters, and it can also miss surprises like German ß expanding into two letters that a plain A-Z loop wouldn't catch at all.

What Is Uppercase Text Converter?

Uppercase conversion replaces every letter in a string with its capital form, leaving digits, punctuation, and whitespace unchanged.

Unlike CSS text-transform, which only changes how a browser renders text, this produces new text: the capitalized value is what you'd copy, submit, or store, not just what's displayed on screen.

How Uppercase Text Converter Works

The tool calls JavaScript's built-in, locale-independent String.prototype.toUpperCase on the input, which correctly handles a wide range of scripts beyond plain ASCII letters.

Because it's locale-independent, results are consistent no matter what language your browser is set to - though that also means it won't apply locale-specific casing exceptions like Turkish's dotless ı, which a small subset of languages require. It's also not guaranteed to be length-preserving: the default case mapping expands a small number of characters, most notably German ß into "SS", into more than one output character.

When To Use Uppercase Text Converter

Use it to preview how a heading or label will look in all caps, format a constant name, or quickly normalize case before a case-insensitive comparison.

It's a fast way to generate an ALL_CAPS environment variable or constant name from a lowercase or mixed-case phrase without reaching for an IDE refactor tool.

Often used alongside Lowercase Text Converter.

Features

Advantages

  • Correctly uppercases accented and non-English letters, not just A-Z.
  • Leaves digits, punctuation, and spacing untouched.
  • Instant client-side conversion for any length of text.

Limitations

  • Uses locale-independent rules, so a handful of locale-specific casing conventions (Turkish dotless ı, for one) aren't applied.
  • Uppercasing isn't always reversible to the original mixed-case text, since information about which letters were originally lowercase gets lost.
  • Output length isn't guaranteed to match input length: German ß expands to the two-character "SS" under the default case mapping, so a string can grow by one or more characters after uppercasing.

Uppercase Conversion vs. CSS text-transform

Uppercase Conversion vs. CSS text-transform
This tool (data)CSS text-transform: uppercase
Changes the underlying textYesNo, display only
Affects what gets copied or submittedYesNo
Use forConstant names, normalized comparison keysVisual styling only

Examples

Uppercasing a sentence

Input

The quick brown fox jumps over the lazy dog.

Output

THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.

Every letter capitalizes while punctuation and spacing stay exactly the same.

German ß expands to "SS", not "ẞ"

Input

straße

Output

STRASSE

The default Unicode case mapping has no single-character uppercase form for ß, so it expands into two letters, "SS". The output ends up one character longer than the input as a result.

Turkish dotless ı becomes a plain "I"

Input

kız

Output

KIZ

Under the locale-independent default mapping, ı uppercases to an ordinary Latin I. That happens to look right here, but the same default mapping also fails to apply the reverse Turkish rule, that a lowercase dotted i should uppercase to İ, which a locale-aware toLocaleUpperCase('tr') would get right.

Accented letters convert correctly

Input

café résumé über

Output

CAFÉ RÉSUMÉ ÜBER

toUpperCase applies the Unicode default case mapping, not a plain A-Z table, so accented Latin letters capitalize correctly in the same pass.

Numbers and symbols pass through unchanged

Input

v1.2-beta (draft)

Output

V1.2-BETA (DRAFT)

Only letters have an uppercase mapping; digits, punctuation, and symbols get copied to the output exactly as written.

Best Practices & Notes

Best Practices

  • For display-only styling, prefer CSS text-transform: uppercase so the underlying data keeps its original case.
  • Use this tool when you actually need the uppercase text as data, like a constant name or a normalized comparison key.
  • Combine with lowercase conversion when building a case-insensitive matching or deduplication step.
  • Don't assume uppercase output has the same length as the input. Validate against strings containing ß or similar expanding characters before relying on fixed-width truncation.
  • Don't rely on this tool for Turkish-specific casing correctness; it deliberately skips locale exceptions like the dotted/dotless I distinction.

Developer Notes

This is a thin wrapper around the native toUpperCase method with no additional locale handling layered on top, matching default JavaScript string behavior exactly. toUpperCase implements the Unicode default case conversion algorithm, which includes several many-to-one and one-to-many mappings beyond a simple letter substitution, German ß expanding to "SS" being the one developers hit most often. It deliberately skips locale-tailored exceptions from Unicode's SpecialCasing data, like Turkish's dotted/dotless I rules, which need toLocaleUpperCase(locale) and are out of scope for a tool that has to produce identical output regardless of the visitor's browser language.

Uppercase Text Converter Use Cases

  • Previewing how a UI heading looks rendered in all caps
  • Formatting a constant or environment variable name
  • Normalizing text to uppercase before a case-insensitive comparison
  • Checking whether a specific character, like German ß, expands when uppercased before relying on it in a fixed-width field or byte-limited system

Common Mistakes

  • Using this for display styling instead of CSS text-transform, which unnecessarily mutates the underlying data.
  • Assuming uppercase conversion is always safely reversible back to the original mixed-case text.
  • Assuming uppercase output is always the same length as the input; German ß and a few other characters expand into multiple letters.

Tips

  • Need locale-specific casing rules, like Turkish? A general-purpose uppercase tool like this one may not match every edge case.
  • Pair with the lowercase tool to quickly compare both cases side by side.
  • If your text might contain ß, check the uppercased length before assuming it matches the original - it'll be at least one character longer per ß.

References

Frequently Asked Questions