Case Converter
Last updated: 27 June 2026
Reviewed by Gavin Meiring, Lead research and primary author ยท Doctoral Candidate (Corporate Governance) ยท Research and drafting assisted by AI
- The terms 'upper case' and 'lower case' come from letterpress printing: typesetters kept capital letters in the upper drawer of the type case and small letters in the lower drawer.
- ALL-CAPS legal notices are a real convention โ many courts and statutes require certain consumer warnings in capitals so they cannot be missed, even though studies show all-caps text is actually slower to read.
- CamelCase got its name from the humps created by capital letters in the middle of words โ it became a programmer's favourite in the 1980s with languages like C and Java.
Case Converter
A case converter changes the capitalisation of text between formats such as UPPER CASE, lower case, Title Case, and Sentence case in a single click. It is used by writers, developers, data entry professionals, and content managers who need to reformat text consistently without retyping it.
How to Use the Case Converter
- Paste or type your text into the input field.
- Select the case format you want: upper case, lower case, title case, sentence case, camelCase, PascalCase, or snake_case.
- Click the convert button.
- Copy the reformatted text from the output field.
- Paste it directly into your document, spreadsheet, or code editor.
The Formula
Case conversion applies character-by-character or word-by-word conversion rules depending on the target format:
- Upper case: every letter is converted to its uppercase equivalent using the Unicode uppercase mapping.
- Lower case: every letter is converted to its lowercase equivalent.
- Title case: the first letter of each word is uppercased; all other letters are lowercased. Some implementations skip short prepositions and conjunctions (such as "of", "and", "the") when they are not the first word.
- Sentence case: the first letter of the first word in each sentence is uppercased; all other letters are lowercased.
- camelCase: words are joined without spaces; the first word is fully lowercase, and the first letter of each subsequent word is uppercased (e.g., "myVariableName").
- PascalCase (UpperCamelCase): like camelCase but with the first word also capitalised (e.g., "MyVariableName").
- snake_case: all letters are lowercased and spaces are replaced with underscores (e.g., "my_variable_name").
Real-World Example
A developer receives a CSV file with product names in ALL CAPS: "BLUETOOTH SPEAKER", "USB CHARGING CABLE", "WIRELESS MOUSE". The product website requires Title Case. They paste the list into the case converter, select Title Case, and instantly get "Bluetooth Speaker", "Usb Charging Cable", "Wireless Mouse". They note that "USB" lost its all-caps formatting and manually correct it, but the bulk of the reformatting is done in seconds.
When to Use Each Case Format
Title case is standard for headlines, book titles, film names, and headings in formal documents. Sentence case is used for body text, captions, and most UI labels in modern software interfaces. UPPER CASE is used for acronyms, warnings, and some headings in legal or technical documents. camelCase and PascalCase are naming conventions in programming: JavaScript and Java favour camelCase for variables and PascalCase for class names. snake_case is common in Python, Ruby, and database column names. kebab-case (hyphens instead of underscores) is used for CSS class names and URL slugs.
Frequently Asked Questions
Does title case capitalise every word? A basic title case converter capitalises the first letter of every word. A more sophisticated one follows style guide rules, leaving short prepositions, articles, and conjunctions in lowercase unless they appear as the first word. Different style guides (APA, Chicago, AP) have slightly different rules.
Can I convert text from camelCase back to plain words? Most simple case converters do not support splitting camelCase or snake_case into separate words. You may need a specialised tool or a find-and-replace approach to insert spaces before capital letters in camelCase strings.
Will it handle text with numbers or special characters? Yes. Numbers and special characters are left unchanged; only alphabetic characters are affected by the case conversion. "Order #1234" in upper case becomes "ORDER #1234".
Is this tool useful for coding variable names? Yes. Developers use case converters to quickly reformat descriptive phrases into the correct naming convention for their language. Pasting "total invoice amount" and selecting snake_case gives "total_invoice_amount" instantly.
The same input under every format
The cleanest way to see what each format does is to run one awkward string through all of them. The sample is deliberately mixed: an all-caps brand token, a lowercase connector, a number and a piece of punctuation.
| Format | Output for "USB CHARGING CABLE, 2 M" | Rule applied |
|---|---|---|
| Upper case | USB CHARGING CABLE, 2 M | Every letter mapped to its uppercase form |
| Lower case | usb charging cable, 2 m | Every letter mapped to its lowercase form |
| Title case | Usb Charging Cable, 2 M | First letter of each word up, the rest down |
| Sentence case | Usb charging cable, 2 m | First letter of each sentence up, the rest down |
The four display formats are fully determined for any string, because each one has a single rule. The mechanical formats are not, because they have to decide what to do with punctuation and digits, and different tools decide differently. Those four are covered in their own table below, where the rule is stated alongside the output.
Two things in the table above are worth pausing on. Title case destroys the acronym, because the rule lowers every letter after the first one in each word, so USB becomes Usb. And the mechanical formats have no opinion about punctuation, so a stray comma can carry straight through into an identifier that will not compile. Neither is a bug in the converter. Both are reasons to clean the input before the conversion rather than after it.
The acronym problem, quantified
The example on this page involves three product names in all caps. Running them through title case produces one that needs a manual fix.
| Input | Title case output | Needs a manual fix |
|---|---|---|
| BLUETOOTH SPEAKER | Bluetooth Speaker | No |
| USB CHARGING CABLE | Usb Charging Cable | Yes, USB |
| WIRELESS MOUSE | Wireless Mouse | No |
One in three, on a three-item sample. On a real catalogue the hit rate depends on how many terms are acronyms, units or model codes. The practical fix is to protect the tokens before converting: replace the acronyms with placeholders that contain no letters, convert, then substitute them back. It takes two find-and-replace passes and removes the manual review step entirely.
Words that do not map one letter to one letter
The rules above assume each character swaps for a single counterpart. Unicode does not guarantee that, and the exceptions show up in ordinary text.
| Input | Upper case | Characters before | Characters after |
|---|---|---|---|
| straรe | STRASSE | 6 | 7 |
| ๏ฌ (ligature fi) | FI | 1 | 2 |
| ฤฐ (Turkish capital I with dot) | ฤฐ | 1 | 1 |
| ฤฐ lower case | i plus a combining dot above | 1 | 2 |
A conversion can therefore change the length of the string. Any spreadsheet column, database field or API payload sized on the original will be one character short for German text, and a byte-length limit in UTF-8 is tighter still because characters outside the basic Latin range take two or more bytes each.
Turkish is the other well-known trap, and it runs in both directions. The uppercase of i is I in the default Unicode mapping but a dotted capital I in the Turkish locale, and the lowercase of I is i by default but a dotless i in Turkish. The dotless and dotted pairs are distinct letters in the language, so the wrong choice produces a word that reads as a different word. Default Unicode casing is the correct behaviour for a general tool; a converter that must be language-aware needs a locale setting, and most browser-based ones do not expose one.
Apostrophes are not word separators
Title case treats an apostrophe as a word boundary, because it looks for the boundary between letter and non-letter. That produces a capital after the apostrophe whether or not a new word starts there.
| Input | Title case output | Comment |
|---|---|---|
| don't stop | Don'T Stop | The T after the apostrophe is capitalised |
| o'neill | O'Neill | Correct here, by accident |
| the lord of the rings | The Lord Of The Rings | Short words are not exempted |
| rock 'n' roll | Rock 'N' Roll | Both single letters capitalised |
The last row also shows the second consequence: a basic title case converter capitalises every word, so articles, conjunctions and short prepositions that a style guide would leave lowercase come out capitalised instead. The Chicago, APA and AP style guides each keep a different list of words small, which is why no single title case rule will satisfy all three. If the output has to follow a named style, treat the converter's output as a first pass and apply the style rules after it.
Identifiers built from plain English
Developers reach for the mechanical formats when turning a description into a name. The transformations are consistent, and the case of the input does not matter because every format lowercases before reshaping.
| Input phrase | snake_case | kebab-case | camelCase | PascalCase |
|---|---|---|---|---|
| total invoice amount | total_invoice_amount | total-invoice-amount | totalInvoiceAmount | TotalInvoiceAmount |
| User Profile Settings | user_profile_settings | user-profile-settings | userProfileSettings | UserProfileSettings |
| HTTP Response Code | http_response_code | http-response-code | httpResponseCode | HttpResponseCode |
Two conventions are worth knowing before you paste one of these into a codebase. Python's style guide, PEP 8, names functions and variables in snake_case and classes in PascalCase. JavaScript and Java use camelCase for variables and functions and PascalCase for classes. The kebab-case row is not valid as a JavaScript or Python identifier at all, because the hyphen parses as subtraction, which is why kebab-case appears in CSS class names and URL slugs rather than in variable names.
Numbers and symbols are left alone
Only letters are affected. Digits, punctuation, spaces and symbols pass through unchanged apart from the space substitution in the mechanical formats.
| Input | Upper case | Lower case | snake_case |
|---|---|---|---|
| Order #1234 | ORDER #1234 | order #1234 | order_#1234 |
| 45 kg | 45 KG | 45 kg | 45_kg |
| 3.5 percent | 3.5 PERCENT | 3.5 percent | 3.5_percent |
| ยฃ1,200.50 | ยฃ1,200.50 | ยฃ1,200.50 | ยฃ1,200.50 |
The last row converts to itself in every format, which is worth checking before assuming a converter that produces no visible change has failed. A string with no letters in it has nothing to convert, and unit symbols such as the pound sign have no uppercase form.
Why the converter is safe to use locally
Case conversion is a pure string operation. It needs no network round trip, no account and no storage, so a browser-based converter can do the work in the page without the text leaving the machine. That matters for anyone pasting customer names, addresses or internal identifiers into a web tool, and it is the reason this kind of utility is often the right choice over an upload-and-process service. The rules themselves are published: the Unicode character database defines the uppercase and lowercase mappings, with the locale-specific exceptions in a separate data file, so the behaviour of any converter can be checked against the standard rather than taken on trust.
Also try these free tools: