Skip to content
HandfulTools

How to change uppercase to lowercase (and back)

Change case in Word, Google Docs, Excel or a browser, understand why title case is a judgement call, and avoid the Turkish i and German ss traps.

· 7 min read

Changing case rewrites each letter to its counterpart in the Unicode case mappings. It is not formatting: the characters themselves change, so the text stays converted when you copy it into an email, a spreadsheet cell or a database. That also means the operation is not always reversible — a few letters do not map back to where they came from, which is the subject of the pitfalls section further down.

The quickest route here: paste your text into the Case converter and pick a mode from the Case selector — UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, aLtErNaTiNg or iNVERSE — then copy the result. Everything runs in the page, so nothing you paste leaves your device. If the text came from a PDF or an email and carries broken line breaks or double spaces, run it through Text cleaner first.

The routes, compared

Route Good for Watch out for
A browser tool like this one Text from anywhere, programmer cases, long lists Paste and copy back
Word or LibreOffice Text already in the document, keeps formatting Only four or five modes
Excel or Google Sheets A whole column at once You get formulas, not text, until you paste as values
A code editor or the shell Files and repositories tr is ASCII-only and quietly skips accents

Application by application

In Microsoft Word, select the text and press Shift+F3: each press cycles lowercase, UPPERCASE and Capitalize Each Word. On a Mac, and on laptops where the function keys control volume and brightness, hold Fn as well. For the full list use the Aa button under Home → Change Case, which adds "Sentence case." and "tOGGLE cASE" — the latter is the rescue for a paragraph typed with Caps Lock on.

In Google Docs, select the text and use Format → Text → Capitalization, which offers lowercase, UPPERCASE and Title Case. There is no sentence case and no default keyboard shortcut.

In LibreOffice Writer, it is Format → Text, with lowercase, UPPERCASE, Capitalize Every Word, Sentence case and tOGGLE cASE all in one menu.

In Excel, case is a formula. With your text in A2: =LOWER(A2), =UPPER(A2), =PROPER(A2). In a French installation the same three functions are =MINUSCULE(A2), =MAJUSCULE(A2) and =NOMPROPRE(A2); Excel and Google Sheets both translate function names, so use the ones your interface shows. Two things follow. First, the result is a formula that depends on A2 — copy the cells and use Paste Special → Values before deleting the original column, or it breaks. Second, PROPER capitalises the letter after every non-letter, so "it's" becomes "It'S" and "e-mail" becomes "E-Mail". Always read the output.

On macOS, TextEdit has Edit → Transformations → Make Lower Case / Make Upper Case / Capitalize. On Windows, Notepad has no case command at all. In VS Code, select and use the command palette (Ctrl+Shift+P, or Cmd+Shift+P) then "Transform to Lowercase". On iPhone and Android keyboards there is no conversion command; double-tapping Shift only locks capitals for what you type next.

The case modes, and what they really do

  • UPPERCASE and lowercase apply the Unicode mapping to every letter. Accents survive: "école" becomes "ÉCOLE", which is worth knowing on a keyboard where a capital É is awkward to type.
  • Title Case capitalises words but leaves a fixed list of short words in lowercase unless they open the text or follow a ., !, ? or :. "how to write a better headline" becomes "How to Write a Better Headline".
  • Sentence case lowercases everything first, then capitalises the first letter and the letter after each ., ! or ?, and restores the standalone English pronoun "I".
  • camelCase, PascalCase, snake_case, kebab-case and CONSTANT_CASE split the text into words at spaces, punctuation and existing capital letters, then rejoin them. So "Order total amount" and "orderTotalAmount" both give order_total_amount. Each line is handled separately, so a whole list converts in one paste. Accents are kept as they are — "Café Noir" gives café_noir. If you want a URL slug, the Slug generator is the right tool: it strips accents and punctuation as well.
  • aLtErNaTiNg and iNVERSE are novelty modes; iNVERSE is genuinely useful for undoing a stuck Caps Lock.

Why title case is an opinion, not a rule

There is no single correct title case. Style guides disagree about which short words stay lowercase, whether words of four letters or more are capitalised, and what to do after a colon. Our converter takes one position: a fixed list of short words — a, an, and, as, at, but, by, for, in, nor, of, on, or, per, so, the, to, up, via, vs, yet, plus French equivalents such as de, du, des, le, la, les, et, en, sur — stays lowercase in the middle of a line.

Two consequences to check before publishing:

  • Acronyms are flattened. Every word is capitalised then lowercased after its first letter, so "the NASA report on PDF files" comes back as "The Nasa Report on Pdf Files". Fix those by hand.
  • Apostrophes stay inside the word. "jOHN o'NEIL" gives "John O'neil", not "John O'Neil". That is the opposite choice from Excel's PROPER, and it is the reason our tool never produces "It'S".

Sentence case has its own blind spot: since it lowercases everything first, proper nouns go with it. "MEETING IN PARIS WITH ANNA" comes back as "Meeting in paris with anna". No tool can reliably tell a name from a common noun, so plan on a read-through.

Two Unicode traps that catch real work

The Turkish dotless i. Turkish has two distinct letters: dotted i/İ and dotless ı/I. Case conversion in the browser follows the device's locale, so on a machine set to Turkish, "istanbul" uppercases to "İSTANBUL" and "I" lowercases to "ı" — correct there, and wrong if you were expecting English behaviour. If a lowercased identifier or file extension must be compared byte for byte, do the comparison in code with an explicit invariant locale rather than in a text tool.

The German sharp s. ß has no single uppercase form in the default mapping: "straße" uppercases to "STRASSE", one character becoming two. Lowercasing that gives "strasse", not "straße". Uppercasing German text is therefore a one-way trip, and round-tripping a column of German surnames through UPPER and back will quietly corrupt it. Keep the original column.

A related trap lives on the command line: tr '[:upper:]' '[:lower:]' only touches ASCII, so "ÉCOLE STRASSE" comes back as "École strasse" — the É untouched. Use a Unicode-aware tool (Python's .lower(), GNU sed 's/.*/\L&/') when the text is not plain English.

Common problems, and what they mean

Word changes my capitals back as I type. That is AutoCorrect, not case conversion. Turn off the relevant boxes under File → Options → Proofing → AutoCorrect Options.

Excel shows my converted column as an error. The formulas pointed at a column you deleted. Paste as values first, then delete.

The converted text has lost its line breaks. The programmer cases join words, by design. For prose, use lowercase, UPPERCASE, Title Case or Sentence case.

Everything ran together into one long word. You applied camelCase or PascalCase to a paragraph. Those modes are for identifiers, not sentences.

My accented letters did not change. Something ASCII-only did the work — a tr command, or an old script. See the trap above.

Questions people ask

Is my text sent to a server? No. The conversion runs in the page on your device.

Can I convert a whole list at once? Yes. Each line is processed separately, so paste the list and copy the result back.

Why is text in all capitals discouraged? It removes the word shapes readers use to skim, and in messages it reads as shouting. Keep it for short labels.

How do I make a web address out of a title? Use the Slug generator rather than lowercase: it also removes accents and punctuation and joins words with hyphens.

How do I check a length limit afterwards? Paste the result into Word counter or Character counter — a title tag or a form field is usually limited in characters, not words.

Next steps

Tools used in this guide

← All guides