Uppercase to Lowercase Converter - Paste, Pick Locale, Read Result

Use this uppercase to lowercase converter to paste any text, pick a locale rule, and read the lowercase result with uppercase, lowercase, and total character counts.

Updated: June 13, 2026 • Free Tool

Uppercase to Lowercase Converter

Enter up to 5,000 characters. The calculator lowercases the entire string and reports counts of uppercase, lowercase, and total characters.

Pick default for the standard Unicode rule, or pick a locale to apply locale-specific lowercasing such as Turkish dotless i.

When set to yes, leading and trailing whitespace is removed before lowercasing so a pasted block with stray spaces or line breaks does not pollute the output.

When set to yes, the original line breaks are kept so multi-line input keeps its paragraph structure. When set to no, every line break is replaced with a single space.

Results

Lowercase text
0
Uppercase characters 0characters
Lowercase characters 0characters
Total characters 0characters

What Is the Uppercase to Lowercase Converter?

An uppercase to lowercase converter is a single-field text tool that pastes any typed string, replaces every uppercase letter with its paired lowercase form, and returns the result alongside character counts that explain the change. Use it when a document, code sample, or message has to be lowercased in one step and you need to see what actually changed before pasting the result elsewhere.

  • Sentence and paragraph cleanup: Lowercase a block of text that ended up in ALL CAPS so it can be re-inserted into a normal paragraph.
  • Code identifier baseline: Lowercase an UPPER_SNAKE_CASE or PascalCase identifier to a clean lowercase form (max_buffer_size or pascalcase) that feeds a refactoring step that adds separators.
  • Data import preparation: Normalize a CSV column to lowercase so 'NY' and 'ny' become the same key.
  • Writing and editing rules: Follow a style guide that calls for lowercase tags, alt text, or sentence-case headings.

The calculator uses the same JavaScript toLowerCase rule that browsers and code editors use for a basic lowercase conversion, so the output matches what the user sees in a normal text field. Locale-specific rules are exposed as an option so words like INDIA in Turkish can be lowercased with the dotless-i the language expects. German (de-DE) is the better pick for text that already contains German letters. JavaScript never infers ß from SS, so STRASSE always lowercases to strasse, not to straße.

When the same text also needs code points, U+ values, or UTF-8 bytes alongside the lowercased form, the Unicode Text Calculator keeps the technical character details in one place.

How the Uppercase to Lowercase Conversion Works

The conversion is a character-by-character replace that follows the Unicode Case Mapping tables. Each uppercase code point is swapped for the lowercase code point listed for that character, and everything else is left untouched.

lowercase = sourceText.toLowerCase() (or sourceText.toLocaleLowerCase(locale) when a locale is selected)
  • sourceText: The full string the user pastes or types. The conversion runs character by character so a single letter in a long paragraph can be lowercased without retyping the rest.
  • toLowerCase: The JavaScript built-in that follows Unicode Standard Annex #21. It replaces every uppercase code point with its paired lowercase code point and leaves digits, punctuation, whitespace, symbols, and characters without a lowercase pair unchanged.
  • toLocaleLowerCase(locale): The locale-aware variant. It applies language-specific rules such as Turkish dotless i (ı) and lowercases the German capital sharp s ẞ (U+1E9E) to ß. JavaScript's toUpperCase for ß still returns SS.
  • 32: The numeric offset between ASCII uppercase A (code point 65) and ASCII lowercase a (code point 97). The +32 offset is why a 26-letter ASCII lowercasing step can be implemented with one subtract and one comparison.

For the basic 26-letter English alphabet, the conversion uses the +32 offset between A–Z (65–90) and a–z (97–122). For every other uppercase letter, the calculator relies on the Unicode Case Mapping table, which covers 1,496 paired uppercase and lowercase code points in the latest Unicode release. If a locale is enabled, the calculator calls toLocaleLowerCase with that locale code. For mixed-language text, the default Unicode rule is usually the safer pick.

Example: Lowercasing a sentence with mixed case and punctuation

Source text: HELLO World! Welcome to the Converter.

The 8 uppercase letters H, E, L, L, O, W, W, C are replaced by the lowercase form h, e, l, l, o, w, w, c. The 23 lowercase letters stay the same. The exclamation mark, the spaces, and the period also stay the same.

The result is hello world! welcome to the converter. The uppercase count drops from 8 to 0 and the lowercase count climbs from 0 to 23.

The output is ready to paste into a sentence-case paragraph, a CSV cell, or a database field that needs normalized text.

According to MDN Web Docs — String.prototype.toLowerCase, toLowerCase returns the calling string converted to lower case and toLocaleLowerCase does the same with a locale argument, with both methods following the Unicode standard case mappings.

After lowercasing the source, the Text to Binary Converter can carry the same text into the 8-bit or UTF-8 byte representation that computers actually store on disk.

Key Concepts Behind Lowercasing

These concepts explain the rules the uppercase to lowercase converter uses and why the result is what it is for accented letters, ligatures, and non-Latin scripts.

Uppercase and lowercase

Uppercase (capital) and lowercase (small) letters are two visual forms of the same alphabetic character. A sentence typically begins with an uppercase letter, while the remaining letters are lowercase.

Unicode case mapping

Unicode assigns a code point to every character and lists, in CaseFolding.txt, the lowercase equivalent for each uppercase or titlecase code point. The converter reads that table for letters outside the basic 26-letter English alphabet.

Locale-aware case rules

Turkish (tr-TR) lowercases a dotted capital I to a dotless lowercase ı. German (de-DE) preserves the lowercase sharp s (ß) and lowercases the capital sharp s ẞ to ß. No locale synthesizes ß from SS, so STRASSE becomes strasse in every JavaScript rule.

Characters without a lowercase pair

Digits, punctuation, symbols, whitespace, and emoji are not letters, so they pass through unchanged. The German sharp s (ß) is left as ß because its lowercase form is itself, and the matching uppercase is the capital sharp s ẞ (U+1E9E), adopted into the German alphabet in 2017.

If a character has a paired lowercase form in the Unicode table, it is replaced. If it does not, it is left alone. The locale setting changes which table the calculator reads for the characters that have language-specific variants. Pick a locale only when the text is in that language.

If the same batch of values also has to be written out in words, the Number to Words Converter gives the numeric-to-written-text workflow alongside this case tool.

How to Use This Calculator

Use the form when you have a block of text with mixed or all-uppercase letters and you want a clean lowercase version in one step.

  1. 1 Paste or type the text: Enter up to 5,000 characters in the text field. Sentences, paragraphs, code identifiers, and accented words all work.
  2. 2 Pick a lowercasing rule: Leave the rule on default Unicode unless the text is in Turkish, German, French, or Spanish and you want the language-specific behavior.
  3. 3 Decide on whitespace and line breaks: Enable trim whitespace to drop stray spaces or newlines from the start and end of the pasted block. Keep line breaks on to preserve the paragraph structure; turn them off to flatten the text into a single line.
  4. 4 Read the lowercase result: Copy the lowercased text from the result panel. The character counts confirm the conversion changed the input and tell you how many letters were affected.
  5. 5 Re-run with a different rule: Switch the locale from default to a specific language, or turn trim on, to see how the same input changes under a different rule.

If you paste the heading THE QUICK BROWN FOX into the text field with the default rule and line breaks on, the calculator returns the quick brown fox, shows that 16 characters were uppercase and 19 characters were in the original input.

When the source text mixes lowercase letters with Roman numerals such as 'Chapter VII', the Roman Numeral Converter helps you read the numeric part of the same label.

Benefits of Using This Calculator

A dedicated uppercase to lowercase calculator removes the small mistakes that happen when lowercasing is done by hand or with a one-off find-and-replace command.

  • Cleans up accidental CAPS: Reformats an email or a heading that ended up in ALL CAPS.
  • Normalizes code identifiers: Lowercases MAX_BUFFER_SIZE to max_buffer_size or PascalCase to pascalcase as a baseline for a refactoring tool to re-case to snake_case or camelCase.
  • Prepares data for import: Lowercases a CSV column so 'NY', 'Ny', and 'ny' all become 'ny'.
  • Supports locale-aware rules: Applies the Turkish, German, French, or Spanish rule for words such as INDIA, ẞ, or ÉTÉ. STRASSE stays strasse because JavaScript never synthesizes ß from SS.
  • Reports what changed: Shows the original uppercase count, the lowercase count, and the total count so the user can confirm the conversion actually changed the input.

The calculator is also useful as a sanity check. Paste the lowercase result back into the field to confirm the uppercase count is now zero.

If a code sample or numeric token has to be read in a different base after lowercasing, the Base Converter handles the binary, octal, and hex translation in one step.

Factors That Affect Your Results

Lowercasing looks simple, but the result depends on the locale rule, the source encoding, and the characters in the source text.

Locale rule

The default Unicode rule lowercases INDIA to india. The Turkish rule lowercases INDIA to ındıa. Pick the locale only when the text is in that language.

Trim and line-break toggles

Trimming removes leading and trailing whitespace. Collapsing line breaks flattens a multi-line input into a single line.

Characters without a lowercase pair

Digits, punctuation, symbols, whitespace, and emoji are not letters, so they pass through unchanged. The German sharp s (ß) is also passed through because its lowercase form is itself. The character count reflects only the letters that had a paired lowercase form in the source.

Source encoding

Accented and combining-mark letters are handled by the Unicode case mapping as long as the source text is encoded in UTF-8 or another Unicode encoding.

  • The calculator is for case only. It does not transliterate, remove diacritics, fold punctuation, or convert scripts. Cyrillic Ж stays Cyrillic ж; Greek Σ stays Greek σ or ς at the end of a word.
  • Locale-specific case rules are based on the locale code passed to toLocaleLowerCase. Mixed-language text can produce a result that matches one language better than the others.

The case mapping table is updated with every Unicode release, so an accented letter that did not have a lowercase pair in Unicode 13 may have one in Unicode 15. The calculator reads the case mapping that ships with the browser. If the source text includes a script or letter the user does not recognize, leave the locale on default and read the character counts to confirm the conversion did what was expected.

According to ECMA-262 String.prototype.toLowerCase, toLowerCase and toLocaleLowerCase follow the Unicode Standard case mapping for the locale of the host environment, the same source the calculator relies on for letters outside the basic 26-letter English alphabet.

According to Unicode Consortium — CaseFolding.txt, the Unicode Standard maps every uppercase or titlecase code point to its paired lowercase form, the source of truth for 1,496 paired uppercase and lowercase code points in the current release.

uppercase to lowercase converter showing a pasted text being transformed into lowercase with live uppercase, lowercase, and total character counts
uppercase to lowercase converter showing a pasted text being transformed into lowercase with live uppercase, lowercase, and total character counts

Frequently Asked Questions

Q: How do I change uppercase letters to lowercase online?

A: Paste any text into the converter, leave the rule on default Unicode, and the result panel shows the lowercased string alongside the uppercase, lowercase, and total character counts. Copy the lowercase text from the result panel and paste it into your document, code editor, or message field.

Q: Is there a keyboard shortcut to convert uppercase to lowercase?

A: Most operating systems expose the same operation as a keyboard shortcut. On Windows, press Ctrl+Shift+A in many editors to toggle case or use the Format > Text > lowercase menu. On macOS, press Command+Option+Shift+K in some text editors to lowercase the selection. For longer text, the calculator is the faster option because it handles an entire block at once.

Q: What is the difference between uppercase and lowercase letters?

A: Uppercase (capital) letters are the larger forms such as A, B, and C; lowercase (small) letters are the smaller forms such as a, b, and c. The two forms of the same letter are paired in the Unicode case mapping table, and the converter replaces the uppercase form with the lowercase form for every character that has a paired entry in the table.

Q: Will this converter keep accents, umlauts, or non-English letters correct?

A: Yes. The default Unicode rule lowercases É to é, Ç to ç, Ñ to ñ, Ö to ö, and Ü to ü, and it lowercases Cyrillic and Greek letters the same way. The locale selector adds language-specific behavior such as Turkish dotless i (ı) for capital I in the tr-TR rule.

Q: Does this work for emoji, digits, punctuation, and symbols?

A: Yes, but those characters are not letters, so they pass through unchanged. The character count in the result panel reports uppercase letters, lowercase letters, and total characters separately, which makes it easy to confirm the conversion only changed the letters that had a paired lowercase form.

Q: Is there a difference between toLowerCase and toLocaleLowerCase?

A: toLowerCase applies the default Unicode case mapping, which works for almost every text. toLocaleLowerCase adds language-specific rules from the locale argument. The Turkish rule (tr-TR) is the most common reason to use the locale-aware variant because it lowercases capital I to a dotless lowercase ı, while the default rule lowercases capital I to a dotted lowercase i.